1.使用命令gpustat(建议)
效果如下:可以看出我们实验室服务器有四块A6000 其中前两块被用户lzd使用,后两块目前没有使用。
1.使用命令nvidia-smi
结果如下:和上面一样前两个卡被用了。可能有疑问:为什么Volatile GPU-Util列显示第二个卡占用为0,明明这个卡的内存已经用了。这个深度学习调用有关,实际上这时GPU正在等待CPU的处理,而CPU的处理结果有时候很慢,所以GPU在等。可以将num_workers=4或8或16(再多不推荐可能变慢,因为通信需要成本),分配多个子线程,且设置pin_memory=True,直接映射数据到GPU的专用内存,减少数据传输时间,提高GPU利用率。