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