设备修正选项(DEVICE MODIFICATION OPTIONS)

本文为NVIDIA-SMI系列指令详解第九篇-设备修正选项(4),介绍和演示了nvidia-smi 指令的设备修正选项最终一部分,介绍了如下指令:

GPU 最大电源功率约束指令 -pl。

GPU 掩盖或许恢复默许 cuda 时钟频率 -cc。

GPU 记账形式指令 -am/-acc。

GPU auto boost相关指令。

GPU 切MIG设置指令。

GPU 温度设置相关指令。

设备修正选项,修正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 方针温度。
                                需求办理员权限

-pl 设置GPU最大额定功率(单位:瓦特)

以瓦特为单位指定最大功率约束。 接受整数和浮点数。

被设置的值需求在 nvidia-smi 输出的 Min 和 Max Power Limit 之间。

留意:

需求办理员权限。

除非运用 -i 参数指定单个 GPU,否则将影响一切 GPU。

仅可在 Kepler 系列受支撑的设备上运转。

取值规模:设备支撑的Min~设备支撑的最大功率

不同设备支撑的Min和Max Power Limit如下图所示:

设备型号 Min Max Power Limit
NIVIDA A30 100.00W 165.00W
NIVIDA A100 100.00W 400.00W
NIVIDA V100 150.00W 300.00W
NVIDIA T4 60.00W 70.00W

运转示例:

设置 GPU 功率约束为200 W运转示例:

nvidia-smi -pl 200

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

能够看到GPU的功率从400.00 W修正到 200.00 W。

再次履行nvidia-smi,能够看到功率容量(Pwr:Usage/Cap)的位置已经变成 200W

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

留意:

对于 A100 型号 GPU 卡,最小约束功率为 100W,设置低于 100W 的功率约束将会报错,例如:

nvidia-smi -pl 50

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

-cc 掩盖或恢复默许 CUDA 时钟频率约束

掩盖或恢复默许 CUDA 时钟频率。 在掩盖形式下,GPU 在运转 CUDA 应用程序时 时钟频率更高。

留意:

需求办理员权限。

除非运用 -i 参数指定单个 GPU,否则将影响一切 GPU。

仅适用于从 Volta 系列开端的受支撑设备。

取值规模:0|RESTORE_DEFAULT, 1|OVERRIDE。

运转示例:

设置 GPU cuda 时钟为恢复默许0|RESTORE_DEFAULT运转示例

nvidia-smi  -cc 0

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

留意:因为本环境A100设备不支撑设置Cuda时钟频率约束,因而本指令并未履行成功,此处仅仅为了演示指令没有过错,在支撑的设备上履行此指令将会回来履行成功成果。

设置 GPU cuda 时钟为掩盖形式 1|OVERRIDE 运转示例:

nvidia-smi  -cc 1

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

留意:因为本环境A100设备不支撑设置Cuda时钟频率约束,因而本指令并未履行成功,此处仅仅为了演示指令没有过错,在支撑的设备上履行此指令将会回来履行成功成果。

-am 启用或禁用记账形式

启用或禁用 GPU 记账形式。 运用 GPU 记账形式能够盯梢单个进程的整个生命周期内的资源运用情况。

留意:

需求办理员权限。

除非运用 -i 参数指定单个 GPU,否则将影响一切 GPU。

仅可在 Kepler 系列受支撑的设备上运转。

取值规模:0|DISABLED, 1|ENABLED

运转示例:

禁用 GPU 记账形式 运转示例:

nvidia-smi -am 0

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

启用 GPU 记账形式 运转示例:

nvidia-smi -am 1

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

-caa 铲除缓冲区中一切已记账的进程pid信息

铲除缓冲区中一切已记账的进程pid信息。

留意:

需求办理员权限。

除非运用 -i 参数指定单个 GPU,否则将影响一切 GPU。

仅可在 Kepler 系列受支撑的设备上运转。

运转示例:

铲除缓冲区中一切已记账的进程pid信息 运转示例:

nvidia-smi -caa

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

-mig 启用或禁用多实例 GPU 形式

启用或禁用多实例 GPU 形式。

留意:

需求root权限。

除非运用 -i 参数指定单个 GPU,否则将影响一切 GPU。

仅可在基于 NVIDIA Ampere 架构支撑的设备上运转。

取值规模:0|DISABLED, 1|ENABLED

运转示例:

禁用多实例 GPU 形式 运转示例:

nvidia-smi -mig 0

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

运转nvidia-smi能够检查MIG信息:

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

启用多实例 GPU 形式 运转示例:

nvidia-smi -mig 1

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

运转nvidia-smi能够检查MIG信息:

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

能够看到,启用 MIG 形式后,nvidia-smi 会输出 MiG 设备相关的列表信息。

-gtt 以摄氏度为单位设置 GPU 的 GPU 方针温度

以摄氏度为单位设置 GPU 的 GPU 方针温度

留意:

需求办理员权限。

除非运用 -i 参数指定单个 GPU,否则将影响一切 GPU。

运转示例:

设置 GPU 方针温度约束 运转示例:

nvidia-smi  -gtt 30

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

留意:因为本环境A100设备不支撑设置 GPU 方针温度约束,因而本指令并未履行成功,此处仅仅为了演示指令没有过错,在支撑的设备上履行此指令将会回来履行成功成果。

auto boost相关设置

–auto-boost-default=形式

将默许主动提高战略设置为 0/DISABLED 或 1/ENABLED,仅在最终一个提高客户端退出后强制履行更改。

留意:

需求root权限。

除非运用 -i 参数指定单个 GPU,否则将影响一切 GPU。

仅适用于 Kepler+ 系列的某些 Tesla 设备和基于 Maxwell 的 GeForce 设备。

取值规模:0/DISABLED, 1/ENABLED

运转示例:

设置发动 auto boost default 形式 运转示例:

nvidia-smi --auto-boost-default=1

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

留意:因为本环境A100设备不支撑设置 GPU auto boost default形式,因而本指令并未履行成功,此处仅仅为了演示指令没有过错,在支撑的设备上履行此指令将会回来履行成功成果。

设置禁用 auto boost default 形式 运转示例:

nvidia-smi --auto-boost-default=0

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

留意:因为本环境A100设备不支撑设置 GPU auto boost default形式,因而本指令并未履行成功,此处仅仅为了演示指令没有过错,在支撑的设备上履行此指令将会回来履行成功成果。

–auto-boost-permission=形式

允许非办理员/root 对主动增强形式进行操控。

留意:

需求root权限。

除非运用 -i 参数指定单个 GPU,否则将影响一切 GPU。

仅适用于 Kepler+ 系列的某些 Tesla 设备和基于 Maxwell 的 GeForce 设备。

取值规模:0|UNRESTRICTED, 1|RESTRICTED

运转示例:

设置约束 auto boost permission 形式 运转示例:

nvidia-smi --auto-boost-permission=1

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

留意:因为本环境A100设备不支撑设置 GPU auto boost permission 形式,因而本指令并未履行成功,此处仅仅为了演示指令没有过错,在支撑的设备上履行此指令将会回来履行成功成果。

设置不约束 auto boost permission 形式 运转示例:

nvidia-smi --auto-boost-permission=0

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

留意:因为本环境A100设备不支撑设置 GPU auto boost permission形式,因而本指令并未履行成功,此处仅仅为了演示指令没有过错,在支撑的设备上履行此指令将会回来履行成功成果。

附加选项

-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 之间共享。