我想这个问题肯定以前被问过但我一直找不到答案。
我正在使用 CentOS 7 的服务器上训练神经网络。我使用的是 Linux 屏幕。在一个特定的屏幕上,我连接了 4 个 GPU。我怀疑我的训练没有使用它们,但我不知道如何确定,因为我必须停止训练才能运行类似的东西nvidia-smi
来获取有关 GPU 使用情况的信息。那么显然没有使用任何 GPU。我也无法在屏幕外运行命令。
我曾尝试进行训练nohup
但却无法结束它,所以我在寻找其他的方法。
问题:如何确定 GPU 的使用情况期间训练?
答案1
您可能可以使用类似这样的脚本:
./myprogram &
./myprogram &
./myprogram &
./myprogram &
echo Started ./myprogram instances, now sleeping for 5 seconds
sleep 5
echo Doing "cat /proc/cpuinfo | grep MHz"
cat /proc/cpuinfo | grep MHz
echo Waiting until all ./myprogram instances are done
wait
cat /proc/cpuinfo
上面的方法对我有用,它让我可以在四个myprogram
实例运行时查看命令的结果。对于您来说,您需要运行您的训练程序而不是“myprogram”,并且在我的测试中运行您的nvidia-smi
命令而不是命令cat /proc/cpuinfo
。
关键是,以这种方式启动程序&
意味着它们在后台运行,然后您可以根据需要使用该sleep
命令等待,然后执行某些操作来获取您想要的任何信息,最后wait
意味着您等到所有进程都完成;在您的情况下,直到训练计划完成。
类似这样的事对你有用吗?