我的CUDA程序在执行过程中崩溃了,在内存被刷新之前。结果,设备内存仍然被占用。
我正在GTX 580上运行,
将
我远程访问带有该GPU的Fedora服务器,因此物理重置非常复杂。
因此,问题是-在这种情况下有没有办法清空设备内存?
我正在GTX 580上运行,
nvidia-smi --gpu-reset
不支持。将
cudaDeviceReset()
放在程序开头只影响由进程创建的当前上下文,并不能清除之前分配的内存。我远程访问带有该GPU的Fedora服务器,因此物理重置非常复杂。
因此,问题是-在这种情况下有没有办法清空设备内存?
nvidia-smi --gpu-reset
不可用,但我仍可以通过使用nvidia-smi -q
获得一些信息。在大多数字段中,它会显示“N/A”,但某些信息是有用的。这是相关的输出:内存使用情况 总共 : 1535 MB 已使用 : 1227 MB 空闲 : 307 MB
- timdimnvidia
驱动程序。 - teraps -ef |grep 'whoami'
命令,而结果显示出任何似乎与你崩溃的会话相关的进程,请终止它们。(其中单引号 ' 应该替换为反引号 `) - Robert Crovellasudo rmmod nvidia
吗? - Przemyslaw Zychnvidia-smi -caa
对我来说非常好用,可以一次释放所有GPU上的内存。 - David Arenburg