一、查看 tensorflow 是否使用了GPU进行计算
import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
运行程序,日志若包含 gpu 信息,则使用了 gpu。
二、使用指定GPU
方式一:代码:
import os
os.environ[‘CUDA_VISIBLE_DEVICES’]=’1’
方式二、命令行:
CUDA_VISIBLE_DEVICES=’1’ python code.py
这个命令是指定程序用哪个 GPU 跑 tensorflow,不加的话默认都是显卡 0,然后可能就爆了。我们有 n 张显卡,可以根据需要指定不同的显卡跑程序的
三、设置GPU使用比例
tf 默认一个程序会占用一整个gpu,在程序里手动设置GPU使用比例这样可以一个GPU可以跑多个程序
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.9 # 占用GPU90%的显存
session = tf.Session(config=config)
三、GPU内存分配
session_conf = tf.ConfigProto()
session_conf.gpu_options.allow_growth = True # 设置allow_grouth,根据运行时的需要来分配GPU内存
sess = tf.Session(config=session_conf)
四、查看GPU memory的使用情況
在终端输入命令 nvidia-smi
GPU:GPU 编号;
Name:GPU 型号;
Persistence-M:持续模式的状态。持续模式虽然耗能大,但是在新的GPU应用启动时,花费的时间更少,这里显示的是off的状态;
Fan:风扇转速,从0到100%之间变动;
Temp:温度,单位是摄氏度;
Perf:性能状态,从 P0 到 P12,P0 表示最大性能,P12 表示状态最小性能(即 GPU 未工作时为 P0,达到最大工作限度时为 P12)。
Pwr:Usage/Cap:能耗;
Memory Usage:显存使用率;
Bus-Id:涉及GPU总线的东西,domain🚌device.function;
Disp.A:Display Active,表示GPU的显示是否初始化;
Volatile GPU-Util:浮动的GPU利用率;
Uncorr. ECC:Error Correcting Code,错误检查与纠正;
Compute M:compute mode,计算模式。
Processes 表示每个进程对 GPU 的显存使用率。
输入命令 top
查看动态可用内存?