App下載

Pytorch 如何查看、釋放已關(guān)閉程序占用的GPU資源

猿友 2021-07-23 16:13:23 瀏覽數(shù) (3326)
反饋

我們知道pytorch的機(jī)器學(xué)習(xí)代碼是可以放在顯卡上面運(yùn)行的(很多情況下也都是放在顯卡上運(yùn)行),而且機(jī)器學(xué)習(xí)的代碼也是顯卡資源占用大戶。那么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可以看到當(dāng)前各個(gè)顯卡及用戶使用狀況,如下圖所示,使用kill -9 pid(需替換成具體的編號(hào))即可殺掉占用資源的程序,殺完后結(jié)果如下圖所示,可以發(fā)現(xiàn)再也沒有對(duì)應(yīng)自己的程序了!

清除進(jìn)程

清除進(jìn)程

補(bǔ)充一下師弟幫忙的記錄截圖,方便以后查詢使用:

進(jìn)程列表

補(bǔ)充:如何處理Pytorch使用GPU后仍有GPU資源未釋放的情況

使用PyTorch設(shè)置多線程(threads)進(jìn)行數(shù)據(jù)讀?。―ataLoader),其實(shí)是假的多線程,他是開了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。


0 人點(diǎn)贊