合 NVIDIA GPU常用命令及设置汇总
简介
大多数用户知道如何检查其CPU的状态,查看多少系统内存可用或找出多少磁盘空间可用。相反,从历史上看,保持GPU的运行状况和状态更加困难。如果您不知道在哪里看,甚至可能很难确定系统中GPU的类型和功能。值得庆幸的是,NVIDIA最新的硬件和软件工具在这方面取得了不错的改进。
该工具是NVIDIA的系统管理界面(nvidia-smi)。根据卡的生成方式,可以收集各种级别的信息。此外,可以启用和禁用GPU配置选项(例如ECC内存功能)。
顺便说一句,如果您发现在使NVIDIA GPU运行GPGPU代码方面遇到困难,这nvidia-smi会很方便。例如,在某些系统上/dev,启动时未创建正确的NVIDIA设备。nvidia-smi以root身份运行简单查询将初始化所有卡,并在中创建合适的设备/dev。在其他时候,确保所有GPU卡可见并正确通信非常有用。这是带有四个Tesla V100 GPU卡的最新版本的默认输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | nvidia-smi +-----------------------------------------------------------------------------+ | NVIDIA-SMI 410.48 Driver Version: 410.48 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 Tesla V100-PCIE... Off | 00000000:18:00.0 Off | 0 | | N/A 40C P0 55W / 250W | 31194MiB / 32480MiB | 44% Default | +-------------------------------+----------------------+----------------------+ | 1 Tesla V100-PCIE... Off | 00000000:3B:00.0 Off | 0 | | N/A 40C P0 36W / 250W | 30884MiB / 32480MiB | 0% Default | +-------------------------------+----------------------+----------------------+ | 2 Tesla V100-PCIE... Off | 00000000:86:00.0 Off | 0 | | N/A 41C P0 39W / 250W | 30884MiB / 32480MiB | 0% Default | +-------------------------------+----------------------+----------------------+ | 3 Tesla V100-PCIE... Off | 00000000:AF:00.0 Off | 0 | | N/A 39C P0 37W / 250W | 30884MiB / 32480MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | 0 305892 C /usr/bin/python 31181MiB | +-----------------------------------------------------------------------------+ |
持续模式
在Linux上,您可以将GPU设置为持久模式,以使NVIDIA驱动程序加载,即使没有应用程序在访问这些卡也是如此。当您要运行一系列短期作业时,此功能特别有用。持久模式每个闲置的GPU使用更多的功率,但是可以防止每次启动GPU应用程序时出现相当长的延迟。如果您已为GPU分配了特定的时钟速度或功率限制,则也很有必要(因为在卸载NVIDIA驱动程序时这些更改会丢失)。通过运行以下命令在所有GPU上启用持久性模式:
1 | nvidia-smi -pm 1 |
在Windows上,nvidia-smi无法设置持久性模式。相反,您需要将计算GPU设置为TCC模式。这应该通过NVIDIA的图形GPU设备管理面板来完成。
nvidia-smi支持的GPU
NVIDIA的SMI工具基本上支持自2011年以来发布的所有NVIDIA GPU。这些工具包括Fermi和更高架构家族(Kepler,Maxwell,Pascal,Volta等)的Tesla,Quadro和GeForce设备。
支持的产品包括:
Tesla:S1070,S2050,C1060,C2050 / 70,M2050 / 70/90,X2070 / 90,K10,K20,K20X,K40,K80,M40,P40,P100,V100
Quadro:4000、5000、6000、7000,M2070-Q,K系列,M系列,P系列,RTX系列
GeForce:支持级别不同,可用指标少于特斯拉和Quadro产品
查询GPU状态
我们为客户提供基准测试服务的Microway的GPU Test Drive集群包含一组NVIDIA最新的Tesla GPU。这些是NVIDIA的高性能计算GPU,可提供大量的运行状况和状态信息。以下示例摘自该内部群集。
要列出所有可用的NVIDIA设备,请运行:
1 2 3 4 | nvidia-smi -L GPU 0: Tesla K40m (UUID: GPU-d0e093a0-c3b3-f458-5a55-6eb69fxxxxxx) GPU 1: Tesla K40m (UUID: GPU-d105b085-7239-3871-43ef-975ecaxxxxxx) |
要列出有关每个GPU的某些详细信息,请尝试:
1 2 3 | nvidia-smi --query-gpu=index,name,uuid,serial --format=csv 0, Tesla K40m, GPU-d0e093a0-c3b3-f458-5a55-6eb69fxxxxxx, 0323913xxxxxx 1, Tesla K40m, GPU-d105b085-7239-3871-43ef-975ecaxxxxxx, 0324214xxxxxx |
要以1秒的更新间隔监视总体GPU使用情况:
1 2 3 4 5 6 7 | nvidia-smi dmon # gpu pwr gtemp mtemp sm mem enc dec mclk pclk # Idx W C C % % % % MHz MHz 0 43 35 - 0 0 0 0 2505 1075 1 42 31 - 97 9 0 0 2505 1075 (in this example, one GPU is idle and one GPU has 97% of the CUDA sm "cores" in use) |
nvidia-smi dmon
1 2 3 4 5 6 7 | nvidia-smi pmon # gpu pid type sm mem enc dec command # Idx # C/G % % % % name 0 14835 C 45 15 0 0 python 1 14945 C 64 50 0 0 python (in this case, two different python processes are running; one on each GPU) |
要以1秒的更新间隔监视每个进程的GPU使用情况:
1 2 3 4 5 6 7 | nvidia-smi pmon # gpu pid type sm mem enc dec command # Idx # C/G % % % % name 0 14835 C 45 15 0 0 python 1 14945 C 64 50 0 0 python (in this case, two different python processes are running; one on each GPU) |
监控和管理GPU Boost
NVIDIA在较新的GPU中包含的GPU Boost功能允许GPU时钟根据负载而变化(只要有可用的功率和散热空间,就可以实现最佳性能)。但是,可用空间的大小会因应用程序(甚至是输入文件!)而异,因此用户和管理员应密切注意GPU的状态。
可以显示每个GPU(在本例中为Tesla V100)的可用时钟速度列表:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | nvidia-smi -q -d SUPPORTED_CLOCKS GPU 00000000:18:00.0 Supported Clocks Memory : 877 MHz Graphics : 1380 MHz Graphics : 1372 MHz Graphics : 1365 MHz Graphics : 1357 MHz [...159 additional clock speeds omitted...] Graphics : 157 MHz Graphics : 150 MHz Graphics : 142 MHz Graphics : 135 MHz |