Skip to content

Commit 3966af9

Browse files
committed
Address comments in the PR
1 parent 088664c commit 3966af9

3 files changed

Lines changed: 20 additions & 5 deletions

File tree

cuda_core/cuda/core/system/_device.pyx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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

cuda_core/cuda/core/system/_process.pxi

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@
55

66
class 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

cuda_core/tests/system/test_system_device.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff 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")

0 commit comments

Comments
 (0)