我們在使用tensorflow 的時候, 有時候會在控制台終止掉正在運行的程序,但是有時候程序已經結束了,nvidia-smi也看到沒有程序了,但是GPU的內存並沒有釋放,那么怎么解決該問題呢?
首先執行下面的命令:
fuser -v /dev/nvidia* #查找占用GPU資源的PID
因為我們只有一塊顯卡,所以顯示如下圖所示:
可以看到我們的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的內存使用量。