File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -775,7 +775,7 @@ cdef class Device:
775775 Querying per- instance information using MIG device handles is not
776776 supported if the device is in vGPU Host virtualization mode.
777777 """
778- return [ProcessInfo(proc) for proc in nvml.device_get_compute_running_processes_v3(self._handle)]
778+ return [ProcessInfo(self, proc) for proc in nvml.device_get_compute_running_processes_v3(self._handle)]
779779
780780 ##########################################################################
781781 # REPAIR STATUS
Original file line number Diff line number Diff line change 55
66class ProcessInfo :
77 """
8- Information about a process using the GPU.
8+ Information about running compute processes on the GPU.
99 """
10- def __init__ (self , process_info: nvml.ProcessInfo ):
10+ def __init__ (self , device: "Device", process_info: nvml.ProcessInfo ):
11+ self ._device = device
1112 self ._process_info = process_info
1213
1314 @property
@@ -31,6 +32,10 @@ class ProcessInfo:
3132
3233 Only valid for processes running on MIG devices.
3334 """
35+ if not self._device.mig.is_mig_device:
36+ raise nvml.UnsupportedError(
37+ "GPU instance ID is only valid for processes running on MIG devices."
38+ )
3439 return self._process_info.gpu_instance_id
3540
3641 @property
@@ -40,4 +45,8 @@ class ProcessInfo:
4045
4146 Only valid for processes running on MIG devices.
4247 """
48+ if not self._device.mig.is_mig_device:
49+ raise nvml.UnsupportedError(
50+ "Compute instance ID is only valid for processes running on MIG devices."
51+ )
4352 return self._process_info.compute_instance_id
Original file line number Diff line number Diff line change @@ -740,8 +740,14 @@ def test_compute_running_processes():
740740 assert isinstance (proc , _device .ProcessInfo )
741741 assert isinstance (proc .pid , int )
742742 assert isinstance (proc .used_gpu_memory , int )
743- assert isinstance (proc .gpu_instance_id , int )
744- assert isinstance (proc .compute_instance_id , int )
743+ if device .mig .is_mig_device :
744+ assert isinstance (proc .gpu_instance_id , int )
745+ assert isinstance (proc .compute_instance_id , int )
746+ else :
747+ with pytest .raises (nvml .UnsupportedError ):
748+ proc .gpu_instance_id # noqa: B018
749+ with pytest .raises (nvml .UnsupportedError ):
750+ proc .compute_instance_id # noqa: B018
745751
746752
747753@pytest .mark .skipif (helpers .IS_WSL or helpers .IS_WINDOWS , reason = "MIG not supported on WSL or Windows" )
You can’t perform that action at this time.
0 commit comments