经常使用GPU 的人会常常查看GPU 信息,在查看其中比较常用的是对nvidia产品的nvidia-smi。所以有必要仔细的了解一下;nvidia-smi 这个命令还有很多的参数可以使用,在文中末尾给出了关于这个命令的详细的信息的链接。
英伟达系统管理接口(NVIDIA System Management Interface, 简称 nvidia-smi)是基于NVIDIA Management Library (NVML) 的命令行管理组件,旨在(intened to )帮助管理和监控NVIDIA GPU设备。
该实用程序允许管理员查询GPU设备状态并具有适当的权限,并允许管理员修改GPU设备状态。 这个程序适用于TeslaTM,GRIDTM,QuadroTM和Titan X产品,当然在其他NVIDIA GPU也有部分的支持。
NVIDIA-smi在Linux上与NVIDIA GPU显示驱动程序一起提供,64位Windows Server 2008 R2和Windows 7. Nvidia-smi可以将查询信息以XML或人类可读的纯文本报告给标准输出或文件。 有关详细信息,请参阅nvidia-smi文档 。
NVSMI的大部分功能由底层的基于NVML C的库提供。 有关NVML的更多信息,请参阅下面的NVIDIA开发者网站链接。 也可以使用基于NVML的Python binding。
这里给出开发者网站和Python bindings:
NVML SDK: http://developer.nvidia.com/nvidia-management-library-nvml/
Python bindings: http://pypi.python.org/pypi/nvidia-ml-py/
输入nvidia-smi 命令以后,会有对应的输出:
例如:
下面对输出进行解释:
一般输出的信息有:
Timestamp : 常常是以Day-of-week Month Day HH:MM:SS Year 的形式输出的。
Driver Version:设备的版本
Attached GPUs : 附加的GPU 信息
比如:
Processes
Processes 部分显示的是 在GPU设备上 计算或者Graphics Context 的进程列表;
所列的形式是以 <GPU index> <PID> <Tyype> <Process Name> <GPU Menory Usage>
GPU index 是现在使用的是哪个GPU 设备号
PID 给出相应的进程号
Type 给出是在GPU中使用的是计算(用C代表)还是图形图像处理(用G代表); "C+G" for the process having both Compute and Graphics contexts.
Process Name 是给出了当前的进程的名称
GPU Memory Usage Context在设备上使用的内存量。 在WDDM模式下运行时Windows不可用,因为Windows KMD管理的是所有内存,而不是NVIDIA驱动程序的。
参考文献: