code: def first_gpu(self):
      if not self.nvml:
          return
  
      self.nvml.nvmlInit()
      for i in range(self.n_gpu):
          handle = self.nvml.nvmlDeviceGetHandleByIndex(i)
          self.data[
              f"gpu.memory.total.{i}"
          ] = self.nvml.nvmlDeviceGetMemoryInfo(handle).total
          try:
              self.data[
                  f"gpu.power.limit.{i}"
              ] = self.nvml.nvmlDeviceGetPowerManagementLimit(handle)
          except self.nvml.NVMLError:
              pass
  
      self.nvml.nvmlShutdown()
  
imports: import time
  from pathlib import Path
  import psutil
  from labml import logger
  from labml.internal.computer.monitor.process import ProcessMonitor
  from labml.logger import Text
  from labml.utils.notice import labml_notice
label_desc: Use image node_id 6 for calling the Scanner obj's underlying member method code with example usage: obj.first_gpu() without return types