GPU 顯存釋放


我們在使用tensorflow 的時候, 有時候會在控制台終止掉正在運行的程序,但是有時候程序已經結束了,nvidia-smi也看到沒有程序了,但是GPU的內存並沒有釋放,那么怎么解決該問題呢?

 

首先執行下面的命令:

fuser -v /dev/nvidia* #查找占用GPU資源的PID

因為我們只有一塊顯卡,所以顯示如下圖所示: 
image

可以看到我們的nvidia0上還有一個python 2.7的PID

 

然后我們執行:

kill -9 pid

然后再執行nvidia-smi就可以看到內存已經被釋放了

 

GPU 顯存實施查看:

但是有時我們希望不僅知道那一固定時刻的GPU使用情況,我們希望一直掌握其動向,此時我們就希望周期性地輸出,比如每 10s 就更新顯示。

這時候就需要用到 watch命令,來周期性地執行nvidia-smi命令了。

了解一下watch的功能:

$ whatis watch
watch(1) - execute a program periodically, showing output fullscreen

作用:周期性執行某一命令,並將輸出顯示。

watch的基本用法是:

$ watch [options] command

最常用的參數是 -n, 后面指定是每多少秒來執行一次命令。

監視顯存:我們設置為每 10s 顯示一次顯存的情況:

$ watch -n 10 nvidia-smi

原文:https://blog.csdn.net/jasonzzj/article/details/52649174

 

查看是否使用GPU計算:

import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

查看日志信息若包含gpu信息,就是使用了gpu。
其他方法:跑計算量大的代碼,通過 nvidia-smi 命令查看gpu的內存使用量。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM