GPU視訊記憶體未釋放問題

2021-10-02 09:27:11 字數 568 閱讀 7853

我們正在使用tensorflow或pytorch寫程式的時候,有時會在控制台將程式殺死,但是有時候程式已經結束了,用nvidia-smi也看到程式已經停止,但是gpu還佔著記憶體沒有釋放。

這是因為,在使用pytorch設定多執行緒(threads)進行資料讀取(data_loader)時,其實是假的多執行緒,而是開了n個子進行進行模擬多執行緒工作,所以在程式跑完或者中途kill掉主程序的話,子程序的gpu視訊記憶體並不會被釋放掉,需要手動乙個乙個kill掉

具體方法描述如下:

1、先關閉掉ssh(或shell)窗後,退出重新鄧麗

2 檢視執行在gpu上的所有程式:

fuser -v /dev/nvidia*
3  kill掉所有的殭屍程序(殭屍程序是連號的)

執行fuser -v /dev/nvidia*   可以發現殭屍程序,檢視具體這個程序呼叫gpu的情況使用   pmap  -d pid

強行關掉所有當前並未執行的殭屍程序

kill -9 pid
參考

自己只是想要記錄一下出現過的錯誤,後面方便找

記錄 檢視釋放指定GPU的視訊記憶體占用

方法一 nvidia smi方法二 gpustat 安裝 gpustat pip install gpustat使用 方法三 定位占用的程序pid fuser v dev nvidia 會顯示gpu和對應的程序占用列表。dev nvidia2代表第三塊gpu 殺掉無用程序 kill 9 window...

GPU顯示卡,視訊記憶體位寬

視訊記憶體位寬是顯存在乙個時鐘週期內所能傳送資料的位數,位數越大則瞬間所能傳輸的資料量越大,這是視訊記憶體的重要引數之一。1簡介視訊記憶體位寬是顯存在乙個時鐘週期內所能傳送資料的位數,位數越大則瞬間所能傳輸的資料量越大,這是視訊記憶體的重要引數之一。視訊記憶體頻寬 視訊記憶體頻率x視訊記憶體位寬 8...

顯示卡和GPU 視訊記憶體的理解

顯示卡 gpu決定一切,打個比方,你去奇瑞買qq花3w它也是4個輪,卡宴160w也是4個輪,這裡車輪也就相當於視訊記憶體,大家視訊記憶體一樣,奇瑞什麼發動機卡宴什麼發動機?奇瑞絕對跑不到200邁,也就是說gpu的好壞直接決定了你的顯示卡跑多少分。另外視訊記憶體還有位寬問題,就好比卡宴是四驅qq是兩驅...