nvidia-smi命令解释
- nvidia-smi是nvidia 的系统管理界面
- 其中smi是System management interface的缩写,它可以收集各种级别的信息,查看显存使用情况
- 此外, 可以启用和禁用 GPU 配置选项 (如 ECC 内存功能)
查看GPU信息
nvidia-smi
nvidia-smi -l [秒数]# 每隔几秒查看GPU当前状态
nvidia-smi -h # 查看命令
nvidia-smi -L # 查看可用的NVIDIA设备
栏位解释 :
- GPU:本机中的GPU编号(有多块显卡的时候,从0开始编号)图上GPU的编号是:0
- Fan:风扇转速(0%-100%),N/A表示没有风扇
- Name:GPU类型,图上GPU的类型是:Tesla T4
- Temp:GPU的温度(GPU温度过高会导致GPU的频率下降)
- Perf:GPU的性能状态,从P0(最大性能)到P12(最小性能),图上是:P0
- Persistence-M:持续模式的状态,持续模式虽然耗能大,但是在新的GPU应用启动时花费的时间更少,图上显示的是:off
- Pwr:Usager/Cap:能耗表示,Usage:用了多少,Cap总共多少 (GPU功耗)
- Bus-Id:GPU总线相关显示,domain:bus:device.function
- Disp.A:Display Active ,表示GPU的显示是否初始化
- Memory-Usage:显存使用率
- Volatile GPU-Util:GPU使用率
- Uncorr. ECC:关于ECC的东西,是否开启错误检查和纠正技术,0/disabled,1/enabled
- Compute M:计算模式,0/DEFAULT,1/EXCLUSIVE_PROCESS,2/PROHIBITED
- Processes:显示每个进程占用的显存使用率、进程号、占用的哪个GPU
网图
将监控信息写入文件
- 指定某些字段写入文件
nvidia-smi -l 1 --format=csv --filename=report.csv --query-gpu=timestamp,name,index,utilization.gpu,memory.total,memory.used,power.draw
-
-l:隔多久记录一次,命令中写的是1
-
--format:结果记录文件格式是csv
-
--filename: 结果记录文件的名字
-
--query-gpu:记录哪些数据到csv文件
-
timestamp:时间戳
-
memory.total:显存大小
-
memory.total:显存使用了多少
-
utilization.gpu:GPU使用率
-
power.draw:显存功耗,对应Pwr:Usage
nvidia-smi --help-query-gpu # 查看可以記錄的字段
os.system('ls') # 执行linux命令
Tensonfow函数
https://blog.csdn.net/lenbow/article/details/52152766
相关链接:
[1] 安装Tensorflow(Linux ubuntu) http://blog.csdn.net/lenbow/article/details/51203526
[2] ubuntu下CUDA编译的GCC降级安装 http://blog.csdn.net/lenbow/article/details/51596706
[3] ubuntu手动安装最新Nvidia显卡驱动 http://blog.csdn.net/lenbow/article/details/51683783
[4] Tensorflow的CUDA升级,以及相关配置 http://blog.csdn.net/lenbow/article/details/52118116
[5] 基于gensim的Doc2Vec简析 http://blog.csdn.net/lenbow/article/details/52120230
[6] TensorFlow的分布式学习框架简介 http://blog.csdn.net/lenbow/article/details/52130565
————————————————
TensorFlow查看GPU信息
-
查看是否有CPU
import tensorflow as tf
gpu_device_name = tf.test.gpu_device_name()
print(gpu_device_name)
"""
/device:GPU:0
"""
-
檢查GPU是否可用
tf.test.is_gpu_available() # 返回true和false
-
列出所有的本地机器设备
from tensorflow.python.client import device_lib
# 列出所有的本地机器设备(GPU+CPU)
local_device_protos = device_lib.list_local_devices()
print(local_device_protos)
# 判断过滤只打印GPU设备
[print(x) for x in local_device_protos if x.device_type == 'GPU']
'''
name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 10641965056
locality {
bus_id: 1
links {
}
}
incarnation: 7203835317376623910
physical_device_desc: "device: 0, name: Tesla K80, pci bus id: 0000:00:04.0, compute capability: 3.7"
'''