App下載

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

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

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

清除進程

清除進程

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

進程列表

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

使用PyTorch設(shè)置多線程(threads)進行數(shù)據(jù)讀?。―ataLoader),其實是假的多線程,他是開了N個子進程(PID都連著)進行模擬多線程工作,所以你的程序跑完或者中途kill掉主進程的話,子進程的GPU顯存并不會被釋放,需要手動一個一個kill才行

具體方法描述如下:

1.先關(guān)閉ssh(或者shell)窗口,退出重新登錄

2.查看運行在gpu上的所有程序:

fuser -v /dev/nvidia*

3.kill掉所有(連號的)僵尸進程

以上就是pytorch怎么查看占用的GPU資源的方法,希望能給大家一個參考,也希望大家多多支持W3Cschool。


0 人點贊