我們知道pytorch的機器學習代碼是可以放在顯卡上面運行的(很多情況下也都是放在顯卡上運行),而且機器學習的代碼也是顯卡資源占用大戶。那么pytorch怎么查看占用的GPU資源呢?又該如何釋放已關(guān)閉程序占用的資源呢?接下來這篇文章告訴你。
看代碼吧~
import torch
print(torch.cuda.current_device())
print(torch.cuda.device_count())
print(torch.cuda.get_device_name())
print(torch.cuda.is_available())
打開terminal輸入nvidia-smi可以看到當前各個顯卡及用戶使用狀況,如下圖所示,使用kill -9 pid(需替換成具體的編號)即可殺掉占用資源的程序,殺完后結(jié)果如下圖所示,可以發(fā)現(xiàn)再也沒有對應(yīng)自己的程序了!
補充一下師弟幫忙的記錄截圖,方便以后查詢使用:
補充:如何處理Pytorch使用GPU后仍有GPU資源未釋放的情況
使用PyTorch設(shè)置多線程(threads)進行數(shù)據(jù)讀取(DataLoader),其實是假的多線程,他是開了N個子進程(PID都連著)進行模擬多線程工作,所以你的程序跑完或者中途kill掉主進程的話,子進程的GPU顯存并不會被釋放,需要手動一個一個kill才行
具體方法描述如下:
1.先關(guān)閉ssh(或者shell)窗口,退出重新登錄
2.查看運行在gpu上的所有程序:
fuser -v /dev/nvidia*
3.kill掉所有(連號的)僵尸進程
以上就是pytorch怎么查看占用的GPU資源的方法,希望能給大家一個參考,也希望大家多多支持W3Cschool。