我是Ubuntu和GPU的新手,最近在我们的实验室中使用了带有Ubuntu 16.04和4个NVIDIA 1080ti GPU的新PC。该机器还配备了i7 16核心处理器。
我有一些基本问题:
答案 0 :(得分:11)
Tensorflow自动不使用所有GPU,它只使用一个GPU,特别是第一个gpu /gpu:0
您必须编写多个gpus代码才能使用所有可用的gpus。 cifar mutli-gpu example
每0.1秒检查一次使用情况
watch -n0.1 nvidia-smi
答案 1 :(得分:4)
tf.device
指令(有关它的更多信息here)。nvidia-smi
。但是,与top
或其他类似程序不同,它仅显示当前的使用情况和完成情况。正如评论中所建议的那样,您可以使用类似watch -n1 nvidia-smi
的内容来连续重新运行程序(在这种情况下每秒)。答案 2 :(得分:1)
答案 3 :(得分:0)
以上所有命令都使用watch
,通过使用builin looper保持上下文有效,效率更高:
nvidia-smi -l 1
。
如果您想同时看到htop
和nvidia-smi
之类的东西,可以尝试glances(pip install glances
)。
答案 4 :(得分:0)
如果您使用的是GCP,请查看此脚本,该脚本可用于监视StackDriver中的GPU利用率,还可以使用它使用nvidia-smi -l 5
命令收集nvidia-smi数据并为您报告这些统计信息进行跟踪。
https://github.com/GoogleCloudPlatform/ml-on-gcp/tree/master/dlvm/gcp-gpu-utilization-metrics
答案 5 :(得分:0)
您应该使用nvidia-smi
。请记住,如果任务在两个采样事件之间完成,则可能看不到负载的变化,具体取决于您的工作量。
还请记住,最大采样间隔为:http://manpages.org/nvidia-smi
为1/6秒使用率报告每个GPU在一段时间内有多忙,可用于确定应用程序在系统中使用GPU的数量。 注意:在启用ECC的驱动程序初始化期间,可以看到较高的GPU和内存利用率读数。这是由驱动程序初始化期间执行的ECC内存清理机制引起的。
GPU 在一个或多个内核在GPU上执行的过去采样周期内的时间百分比。取决于产品,采样时间可能在1秒到1/6秒之间。
内存 在读取或写入全局(设备)内存的过去采样周期内的时间百分比。取决于产品,采样时间可能在1秒到1/6秒之间。
答案 6 :(得分:0)