Advertisement

nvidia-smi命令界面相关介绍、及拓展

阅读量:

1.什么是nvidia-smi

nvidia-smi是nvidia 的系统管理界面 ,其中smi是 System management interface 的缩写,它可以收集各种级别的信息,查看显存使用情况,显卡的温度… …。此外, 可以启用和禁用 GPU 配置选项 (如 ECC 内存功能)。

2.nvidia-smi命令

nvidia-sim简称NVSMI,提供监控GPU使用情况和更改GPU状态的功能,是一个跨平台工具。

3.nvidia-smi界面

4.在终端界面通过该命令的调用得到GPU相关信息

a.获取某一张卡某一进程GPU内存占用大小

nvidia-smi | grep pid | awk '{print 8}' | sed 's/MiB//'(例如pid为37593,在终端界面调用该命令,输出结果2869)(其他同上)( $8指第8列)

b.获取某一张卡进程GPU功耗

首先获取某一进程对应的卡号:nvidia-smi | grep pid | awk '{print 2};比如输出为0,而0对应的GPU功耗位于10行7列,所以先得到这个10行:gpu_card_line=expr 10 + 3 \* $gpu_card,则对应的GPU功耗为nvidia-smi | awk NR=="gpu_card_line"{'print 5'} | sed 's/W//' ;(0号卡输出结果为88)

gpu_card=nvidia-smi | grep $pid | awk '{print $2}' | sed 's/MiB//'
gpu_card_line=expr 10 + 3 \* $gpu_card

gpu_power=nvidia-smi | awk NR=="$gpu_card_line"{'print $5'} | sed 's/W//'

c.获取该卡的 内存使用率

该卡内存使用率同GPU功耗位于同一行,前面相同(0号卡输出结果为12540)

memory_usage=nvidia-smi | awk NR=="$gpu_card_line"{'print $9'} | sed 's/MiB//'

d.获取该卡GPU使用率

同上(0号卡输出结果为89%)

gpu_per=nvidia-smi | awk NR=="$gpu_card_line"{'print $13'}

综上,完整代码为:

gpu=nvidia-smi | grep $pid | awk '{print $8}' | sed 's/MiB//'
gpu_card=nvidia-smi | grep $pid | awk '{print $2}' | sed 's/MiB//'
gpu_card_line=expr 10 + 3 \* $gpu_card
gpu_per='';
gpu_power='';
if [ "gpu" != "" ];then gpu_per=`nvidia-smi | awk NR=="gpu_card_line"{'print 13'}` gpu_power=`nvidia-smi | awk NR=="gpu_card_line"{'print 5'} | sed 's/W//'` memory_usage=`nvidia-smi | awk NR=="gpu_card_line"{'print $9'} | sed 's/MiB//'`
fi

以上命令也可在终端自行试验,直接运行nvidia-smi相关命令;以上编写较简陋,后期随时更改

全部评论 (0)

还没有任何评论哟~