我正在使用export CUDA_VISIBLE_DEVICES=1
在GPU id 1上运行tensorflow,nvidia-smi中的所有内容看起来都很好,我的python进程在gpu 1上运行,内存和功耗显示GPU 1正在使用中。
但奇怪的是,未使用的GPU 0(基于进程列表,内存,电源使用和常识)显示96%的易失性GPU利用率。
任何人都知道为什么?
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 367.48 Driver Version: 367.48 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Tesla K20c Off | 0000:03:00.0 Off | 0 |
| 30% 41C P0 53W / 225W | 0MiB / 4742MiB | 96% Default |
+-------------------------------+----------------------+----------------------+
| 1 Tesla K20c Off | 0000:43:00.0 Off | 0 |
| 36% 49C P0 95W / 225W | 4516MiB / 4742MiB | 63% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 1 5193 C python 4514MiB |
+-----------------------------------------------------------------------------+
答案 0 :(得分:1)
运行ps aux | grep 5193
以查看正在使用GPU的程序。
您的GPU已启用ECC,因此您将看到高CPU或内存利用率。
在启用ECC的驱动程序初始化期间,可以看到高GPU和内存利用率读数。这是由驱动程序初始化期间执行的ECC内存清理机制引起的 当Persistence Mode被禁用时,驱动程序在没有客户端运行时取消初始化(CUDA apps或nvidia-smi或XServer),并且需要在任何GPU应用程序(如nvidia-smi)查询其状态之前再次初始化,从而导致ECC Scrubbing。 /> 根据经验,始终在启用持久性模式的情况下运行。只需以root
nvidia-smi -pm 1
身份运行。这将通过始终加载驱动程序来加速应用程序的午餐。
参考:https://devtalk.nvidia.com/default/topic/539632/k20-with-high-utilization-but-no-compute-processes-/