NVIDIA-SMI系列命令详解(7)-设备修改选项(2)

设备修改选项(DEVICE MODIFICATION OPTIONS)

修改GPU设备的命令,支持的参数列表如下:

    -pm,  --persistence-mode=   设置持久性模式: 0/DISABLED, 1/ENABLED
    -e,   --ecc-config=         切换 ECC 支持: 0/DISABLED, 1/ENABLED
    -p,   --reset-ecc-errors=   重置 ECC 错误计数: 0/VOLATILE, 1/AGGREGATE
    -c,   --compute-mode=       为计算应用程序设置模式:
                                0/DEFAULT, 1/EXCLUSIVE_PROCESS,
                                2/PROHIBITED
    -dm,  --driver-model=
    -fdm, --force-driver-model= 强制启用或禁用 TCC 驱动程序模型。 
                               
          --gom=                设置 GPU 操作模式:
                                0/ALL_ON, 1/COMPUTE, 2/LOW_DP
    -r    --gpu-reset           触发 GPU 的重置。
                                可用于在需要重启机器的情况下重置 GPU 硬件状态。
                                如果发生双位 ECC 错误,通常很有用。
                                重置操作不能保证在所有情况下都有效,应谨慎使用。
    -vm   --virt-mode=          切换 GPU 虚拟化模式:
                                将 GPU 虚拟化模式设置为 3/VGPU 或 4/VSGA。
                                GPU 的虚拟化模式只能在它运行在管理程序上时设置。
    -lgc  --lock-gpu-clocks=    将指定的一对 <minGpuClock,maxGpuClock> 时钟
                                频率取值范围(例如 1500,1500),设置为需锁定
                                的 GPU 时钟频率的范围(以 MHz 为单位)。 
                                无论 GPU 上是否存在正在运行的应用程序,设置此项
                                将取代applications-clocks并生效。
                                输入也可以是一个单一的期望时钟值
                                (例如 <GpuClockValue>)。
    -rgc  --reset-gpu-clocks    重置 GPU 时钟频率到默认值。
    -lmc  --lock-memory-clocks=     将指定的一对 <minMemClock,maxMemClock> 时钟
                                    频率取值范围(例如 5100,5100) ,设置为需锁定
                                    的 GPU 内存时钟频率的范围(以 MHz 为单位)。
                                    输入也可以是一个单一的期望时钟值
                                    (例如<MemClockValue>).
    -rmc  --reset-memory-clocks    重置 GPU 内存时钟频率到默认值。
    -ac   --applications-clocks= 将指定的一对 <memory,graphics> 时钟
                                    频率值(例如 2000,800) ,设置为 GPU 上
                                    运行的应用程序的memory和graphics时钟
                                    频率值(以 MHz 为单位)。
    -rac  --reset-applications-clocks     重置应用程序时钟到默认值。
    -pl   --power-limit=        以瓦特为单位指定最大电源管理限制。
    -cc   --cuda-clocks=        覆盖或恢复默认 CUDA 时钟频率。
                                在覆盖模式下,GPU 在运行 CUDA 应用程序时
                                时钟频率更高。 仅适用于从 Volta 系列开始的
                                受支持设备。 需要管理员权限。
                                0/RESTORE_DEFAULT, 1/OVERRIDE
    -am   --accounting-mode=    启用或禁用记帐模式: 0/DISABLED, 1/ENABLED
    -caa  --clear-accounted-apps    清除缓冲区中所有已记账的进程pid信息。
          --auto-boost-default= 将默认自动增强策略设置为 0/DISABLED 
                                或 1/ENABLED,仅在最后一个提升客户端
                                退出后强制执行更改。
          --auto-boost-permission=  允许非管理员/root 对自动增强模式进行控制:
                                0/UNRESTRICTED, 1/RESTRICTED
    -mig  --multi-instance-gpu= 启用或禁用多实例 GPU: 0/DISABLED, 1/ENABLED
                                需要 root 权限.
    -gtt  --gpu-target-temp=    以摄氏度为单位设置 GPU 的 GPU 目标温度。
                                需要管理员权限

-c 设置计算模式

设置目标 GPU 的计算模式。

计算模式标志指示单个或多个计算应用程序是否可以在 GPU 上运行。

0/Default:表示每个设备允许多个上下文。

1/Exclusive_Thread:已弃用,改用 Exclusive_Process

2/Prohibited:表示每台设备不允许使用任何上下文(无计算应用程序)。

3/Exclusive_Process: 表示每个设备只允许一个上下文,一次可从多个线程使用。

有关计算模式的说明,请参阅(GPU 属性)部分。

注意:

需要root权限。

除非使用 -i 参数指定单个 GPU,否则将影响所有 GPU。

此操作的效果是立竿见影的。

但它不会在主机重新启动后持续存在。

每次主机重新启动后,计算模式将重置为“DEFAULT”。

取值范围:0/Default, 2/Prohibited, 3/Exclusive_Process

运行示例:

设置 0:Default 模式运行示例:

nvidia-smi -c 0

image

Exclusive_Thread模式已禁止设置:

nvidia-smi -c 1

image

可以看到,执行设置 Exclusive_Thread 模式的命令并未执行成功,输出提示该命令已废弃,应当使用3:Exclusive_Process 替代,通过nvidia-smi命令也可以看到,计算模式仍然是 Default ,上条命令并未修改成功。

设置 2:Prohibited 模式运行示例:

nvidia-smi -c 2

image

设置 3:Exclusive_Process 模式运行示例:

nvidia-smi -c 3

image

-dm/-fdm 开启(强制开启) TCC 驱动程序模型

-dm 开启 TCC 驱动程序模型

-fdm 强制开启 TCC 驱动程序模型

有关 Windows 驱动程序模型的详细信息,请参阅驱动程序模型。

注意:

仅适用于 Windows。
需要管理员权限。
如果连接了显示器,-dm 将失败, 但 -fdm 将强制更改驱动程序模型。
除非使用 -i 参数指定单个 GPU,否则将影响所有 GPU。

需要重新启动才能进行更改。

运行示例:

开启 TCC 驱动程序模型

cd C:\Program Files\NVIDIA Corporation\NVSMI
nvidia-smi.exe -dm 1

image

强制开启 TCC 驱动程序模型

cd C:\Program Files\NVIDIA Corporation\NVSMI
nvidia-smi.exe -dm 1

image

--gom 设置 GPU 操作模式

设置 GPU 操作模式:

GOM 允许通过禁用 GPU 功能来降低功耗并优化 GPU 吞吐量。每个 GOM 都旨在满足特定的用户需求。

0/ALL_ON:模式下,一切都已启用并全速运行。

1/COMPUTE:模式旨在仅运行计算任务。不允许图形操作。

2/LOW_DP:模式专为运行不需要高带宽双精度的图形应用程序而设计。

有关 GOM 的更多信息,请参阅 GPU 操作模式。

注意: 0/ALL_ON、1/COMPUTE、2/LOW_DP 支持 Kepler 系列的 GK110 M 级和 X 级 Tesla 产品。

Quadro 和 Tesla C 级产品不支持。

GeForce Titan 设备仅支持LOW_DP 和 ALL_ON 模式。

仅1/COMPUTE不支持 WDDM(Windows 显示驱动程序模型)

需要管理员权限。

GOM 更改在重启后生效。 将来可能会删除重新启动要求。

取值范围:0/ALL_ON, 1/COMPUTE, 2/LOW_DP

运行示例:

nvidia-smi --gom=0

image

注意:

由于本环境使用GPU卡是A30,暂不支持设置gom模式,因此命令并未执行成功,此处只是为了演示命令本身是没有错误的。

-r 触发 GPU 的重置

触发一个或多个 GPU 的重置。可用于在需要重启机器的情况下清除 GPU 硬件和软件状态。如果发生双位 ECC 错误,通常很有用。可选的 -i 开关可用于针对一个或多个特定设备。如果没有此选项,所有 GPU 都会被重置。

不能有任何应用程序使用这些设备(例如 CUDA 应用程序、图形应用程序(如 X 服务器)、监控应用程序(如其他 nvidia-smi 实例))。系统中的任何其他 GPU 上也不能运行任何计算应用程序

从 NVIDIA Ampere 架构开始,可以单独重置具有 NVLink 连接的 GPU。在 NVSwitch 系统上,需要 Fabric Manager 来促进重置。

如果 Fabric Manager 未运行,或者任何要重置的 GPU 基于 NVIDIA Ampere 架构之前的架构,则任何具有 NVLink 连接到要重置的 GPU 的 GPU 也必须在同一命令中重置。这可以通过省略 -i 开关或使用 -i 开关来指定要重置的 GPU 来完成。如果 -i 选项未指定要重置的完整 NVLink GPU 集,则此命令将发出错误,标识必须包含在重置命令中的其他 GPU。

不能保证 GPU 重置在所有情况下都能正常工作。目前不建议用于生产环境。在某些情况下,板上的硬件组件可能无法在复位请求后恢复到初始状态。这更有可能在 Fermi 一代产品与 Kepler 上看到,如果在挂起的 GPU 上执行重置,则更有可能看到。

重置后,建议在进一步使用之前验证每个重置 GPU 的运行状况。如果任何 GPU 不健康,则应通过重启节点来启动完全重置。

访问 developer.nvidia.com/gpu-deploym… 下载 GDK。

注意:

需要root权限。

除非使用 -i 参数指定单个 GPU,否则将影响所有 GPU。

启用 MIG 的 vGPU Guests 机上不支持 GPU 重置操作。

运行示例:

设置 0:Default 模式运行示例:

nvidia-smi -r

如果当前仍然有程序在使用GPU,则会出现如下提示:

image

则说明未重置成功,确保没有任何程序在GPU上运行,再执行重置命令

-vm 切换 GPU 到虚拟化模式

切换 GPU 虚拟化模式: 将 GPU 虚拟化模式设置为 3/VGPU 或 4/VSGA。

注意: GPU 的虚拟化模式只能在它运行在管理程序上时设置。

取值范围:3/VGPU, 4/VSGA

运行示例:

设置 -vm 为 VGPU 模式

nvidia-smi -vm 3

image

注意:

由于本环境命令运行在Guest OS中,而不是管理面程序上,因此命令并未执行成功,此处只是为了演示命令本身是没有错误的。

设置 -vm 为 VSGA 模式

nvidia-smi -vm 4

image

注意:

由于本环境命令运行在Guest OS中,而不是管理面程序上,因此命令并未执行成功,此处只是为了演示命令本身是没有错误的。

附加选项

-i 显示单个指定GPU的数据

-i, --id=ID

显示单个指定 GPU 的数据。指定的 id 可能是驱动程序返回的自然枚举中 GPU 的从 0 开始的索引、GPU 的板序列号、GPU 的 UUID 或 GPU 的 PCI 总线 ID(如 domain:bus:device.function in hex)。建议需要一致性的用户使用 UUID 或 PCI 总线 ID,因为设备枚举顺序不能保证在重新启动之间保持一致,并且板序列号可能在同一板上的多个 GPU 之间共享。

猜你喜欢

转载自juejin.im/post/7120533024076202015