参考:
https://zhuanlan.zhihu.com/p/664550672
NVIDAI-SMI Version 版本号;
Driver Version 驱动版本号;
CUDA Version 版本号;
GPU 型号及序号;
风扇;
温度;
Perf 性能状态;
Persistence-M 持续模式状态;
Pwr: Usage/Cap 显卡功率;
Bus-Id 总线;
Disp.A:Display Active GPU 初始化状态;
Memory-Usage 显存使用率;
Volatile GPU-Util GPU 使用率;
ECC 错误检查和纠错模式;
Compute M 计算模式;
MIG M MIG 功能;
每个指标详细解释一下,
“GPU 型号及序号” 应该很好理解,比如上图中我这里就是只有一块卡,所以序号是 “0”,然后型号是英伟达 A10;“Fan” 风扇表示你的 GPU 是主动散热还是被动散热的,比如像 RTX 那些消费级显卡一般都是主动散热的,从物理形态上来看就是带风扇的,我这里的 A10 是推理计算卡,是被动散热的,所以风扇一直其实都会是 0% (相当于 N/A);
“Temp” 温度,这个很好理解就是目前显卡的温度,我这啥都没干就 61 ℃,还是挺高的,说明这台机器的散热有点问题。“温度” 这个指标是需要在执行程序的时候经常关注的,特别是对于被动散热的卡,要是机器的散热做不好,就容易使卡达到降频保护的温度,从而卡的性能会下降,跑出来的性能就不准确了;
“Perf” 表示显卡的性能状态,有 p0 ~ p12,性能状态从高到底,也就是 p0 表示性能最大,p12 表示性能最小,在 linux 下可以使用 nvidia-settings 工具对这个参数进行配置;
“Persistence-M” 表示持续模式状态,这个参数默认是关闭的,若打开能够让 GPU 更加快速地响应任务,但相应待机功耗也会增加,我这里是默认的 Off 关闭状态;
“Pwr: Usage/Cap” 表示显卡的功耗,可以看到我这里 A10 的显卡功耗是 150W,而前面的 65W 是根据执行的任务动态变化的,是卡上所有执行进程所占显存的和;
“Bus-Id” 表示 GPU 的总线地址;
“Disp.A” 全称是 “Display Active” 表示显卡的显示功能是否初始化,这其实也比较好理解。如果当前的 GPU 正驱动一个活动的显示器,那么这个参数就会是 On,反之为 Off。可以看到我这里的是推理计算卡,是不带显示功能的,所以这个参数就是 Off 了;
“Memory-Usage” 表示显存占用情况,可以看到我这里的显存是 23028 MiB,前面的 9 MiB 也是随着执行的程序动态变化的,但是不能超过 23028 MiB,不然就会报 CUDA 显存不足的错误;
“Volatile GPU-UTil” 表示 GPU 的使用率。GPU 使用率 和 显存使用率 是两个比较重要的指标,一般来说,GPU 使用率高的时候显存使用率也会比较高,但反过来,显存使用率高的时候 GPU 使用率并不一定会高。比如在大量数据传输的时候,显存是被占用的,但是 GPU 本身还没开始计算,这个时候的显存占用是高的,但 GPU 使用率并不一定高,这种情况会经常出现在访存密集型的计算中;
“ECC” 全称为 Error Checking and Correcting,表示是否开启错误检查和纠错技术,“0” 代表关闭,“1” 代表开启。ECC 开启后功能可以用于保护 GPU 硬件,帮助其免受硬件故障和问题的影响。因为它还可以检查内存模块中的错误,并帮助 GPU 从错误中恢复。此外,ECC 还有助于降低电力消耗,因为它只需要较少的功耗就可以处理大量的内存纠错;
“Compute M” 表示计算模式,NVIDIA GPU 有 Default、Exclusive Process、Exclusive Thread、Prohibited 四种计算模式,一般就用默认的 Default 就可以了。在 Default 模式下,多个进程可以同时共享不同的 GPU;
最后一个是 “MIG M”,这是安培架构新提出的功能,可以用于创建 MIG 实例,在用户层实现 GPU 的物理隔离。一看我这 “MIG M” 是 “N/A”,这说明在 A10 上是不支持这个功能的呀。回头一查,发现目前 MIG 仅在 A100 和 H100 上支持,另外还有 “阉割版” 的 A800 和 H800 也是支持 MIG 功能的;