Hello,
I am currently benchmarking GPU Time-Slicing on a Blackwell GB10 (Driver 580.95) within a Kubernetes environment.
I have successfully enabled KUBERNETES_VIRTUAL_GPUS=true in the dcgm-exporter. While this correctly exposes metrics with the vgpu label for multiple pods sharing the same physical GPU, I’ve observed that all telemetry values (Utilization, Power, Temperature) are identical across all virtual devices.
For example, when two pods are running a matrix multiplication stress test:
-
Physical GPU Utilization is 95%.
-
dcgm_gpu_utilization{vgpu="0"}reports 95%. -
dcgm_gpu_utilization{vgpu="1"}reports 95%.
It appears that DCGM is simply mirroring the global physical state to all virtual handles instead of providing per-process or per-container attribution (similar to what nvidia-smi pmon or nvidia-smi dmon can show).
My questions are:
-
Is this a fundamental architectural limitation of DCGM telemetry when using Time-Slicing (non-MIG)?
-
Is there any plan to support actual process-level attribution within the exporter’s metrics so we can distinguish “noisy neighbors”?
-
Are there specific DCGM profiling metrics (like
DCGM_FI_PROF_GR_ENGINE_ACTIVE) that should be used instead for Blackwell when time-slicing is active?
Thanks in advance for the support!