设备修正选项(DEVICE MODIFICATION OPTIONS)
本文为NVIDIA-SMI系列指令详解第六篇-设备修正选项(1),介绍和演示了nvidia-smi 设备修正选项参数-pm(耐久形式敞开/封闭)、-e(ECC敞开/封闭)、-p(重置ECC过错计数)。
修正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
--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 方针温度。
需求管理员权限
-pm 设置耐久形式
设置方针 GPU 的耐久化形式。
继续形式耗能大,但在新的GPU应用启动时花费时刻更少。启用耐久性形式后,即使没有活动客户端(例如 X11 或 nvidia-smi)存在,NVIDIA 驱动程序也会坚持加载状况。这最大限度地减少了与运转相关应用程序(例如 CUDA 程序)相关的驱动程序加载推迟。仅限 Linux。 有关耐久性形式的描述,请参阅(GPU 特点)部分。
留意:
需求root权限。
除非运用 -i 参数指定单个 GPU,否则将影响一切 GPU。
此操作的效果是立竿见影的。
但它不会在主机从头启动后继续存在。
每次主机从头启动后,耐久性形式将默许为“禁用”。
仅在 Linux 上可用。
取值规模:0/DISABLED, 1/ENABLED
运转示例:
敞开形式运转示例:
nvidia-smi -pm 1
封闭形式运转示例:
nvidia-smi -pm 0
-e 敞开或者封闭ECC过错检查和纠正技能
为方针 GPU 设置 ECC 形式。
NVIDIA GPU 可认为各种类型的 ECC 过错供给过错计数。一些 ECC 过错是单位或双位过错,其间单位过错已得到纠正,而双位过错则无法纠正。纹路内存过错能够通过从头发送来纠正,或者假如从头发送失败则无法纠正。这些过错在两个时刻尺度(易失性和聚合)中可用。单比特 ECC 过错由硬件主动纠正,不会导致数据损坏。检测到双位过错但未更正。有关产生双位过错时核算应用程序行为的信息,请参阅 Web 上的 ECC 文档。易失性过错计数器盯梢自前次驱动程序加载以来检测到的过错数。聚合过错计数无限期地继续存在,因而充当整个生命周期计数器。有关ECC的描述,请参阅(GPU 特点)部分。。
留意:
需求root权限。
除非运用 -i 参数指定单个 GPU,否则将影响一切 GPU。
此设置在下次重启后收效,并且是persistent.only。
取值规模:0/DISABLED, 1/ENABLED
运转示例:
敞开ECC运转示例:
nvidia-smi -e 1
上图中履行敞开指令之后,提示需求重启才干收效。Volatile Uncorr. ECC 对应的方位的off*阐明此设置项已更改,需求重启才干收效。
输入reboot重启主机之后,再履行nvidia-smi查询:
能够看到Volatile Uncorr. ECC 对应的方位的0,阐明ECC已敞开,且当时检测到0个ECC过错。假如想查询ECC相关的翔实信息,能够用NVIDIA-SMI系列指令详解(4)-选择性查询选项(1) 中介绍的选择性查询指令查询详解数据,各参数含义参见第四章,指令示例如下:
nvidia-smi --format=csv,noheader --query-gpu=ecc.errors.corrected.volatile.device_memory,ecc.errors.corrected.volatile.dram,ecc.errors.corrected.volatile.register_file,ecc.errors.corrected.volatile.l1_cache,ecc.errors.corrected.volatile.l2_cache,ecc.errors.corrected.volatile.texture_memory,ecc.errors.corrected.volatile.cbu,ecc.errors.corrected.volatile.sram,ecc.errors.corrected.volatile.total,ecc.errors.corrected.aggregate.device_memory,ecc.errors.corrected.aggregate.dram,ecc.errors.corrected.aggregate.register_file,ecc.errors.corrected.aggregate.l1_cache,ecc.errors.corrected.aggregate.l2_cache,ecc.errors.corrected.aggregate.texture_memory,ecc.errors.corrected.aggregate.cbu,ecc.errors.corrected.aggregate.sram,ecc.errors.corrected.aggregate.total,ecc.errors.uncorrected.volatile.device_memory,ecc.errors.uncorrected.volatile.dram,ecc.errors.uncorrected.volatile.register_file,ecc.errors.uncorrected.volatile.l1_cache,ecc.errors.uncorrected.volatile.l2_cache,ecc.errors.uncorrected.volatile.texture_memory,ecc.errors.uncorrected.volatile.cbu,ecc.errors.uncorrected.volatile.sram,ecc.errors.uncorrected.volatile.total,ecc.errors.uncorrected.aggregate.device_memory,ecc.errors.uncorrected.aggregate.dram,ecc.errors.uncorrected.aggregate.register_file,ecc.errors.uncorrected.aggregate.l1_cache,ecc.errors.uncorrected.aggregate.l2_cache,ecc.errors.uncorrected.aggregate.texture_memory,ecc.errors.uncorrected.aggregate.cbu,ecc.errors.uncorrected.aggregate.sram,ecc.errors.uncorrected.aggregate.total
封闭ECC运转示例:
nvidia-smi -e 0
-p 重置 ECC 过错计数器为0
重置方针 GPU 的 ECC 过错计数器。
NVIDIA GPU 可认为各种类型的 ECC 过错供给过错计数。一些 ECC 过错是单位或双位过错,其间单位过错已得到纠正,而双位过错则无法纠正。纹路内存过错能够通过从头发送来纠正,或者假如从头发送失败则无法纠正。这些过错在两个时刻尺度(易失性VOLATILE和聚合AGGREGATE)中可用。单比特 ECC 过错由硬件主动纠正,不会导致数据损坏。检测到双位过错但未更正。有关产生双位过错时核算应用程序行为的信息,请参阅 Web 上的 ECC 文档。易失性过错计数器盯梢自前次驱动程序加载以来检测到的过错数。聚合过错计数无限期地继续存在,因而充当整个生命周期计数器。 有关 ECC 过错计数器类型的阐明,请参阅(GPU 特点)部分。
留意:
需求root权限。
除非运用 -i 参数指定单个 GPU,否则将影响一切 GPU。
此操作的效果是立竿见影的。
取值规模:0|VOLATILE , 1|AGGREGATE
运转示例:
重置 AGGREGATE 聚合 ECC 计数为 0 运转示例:
nvidia-smi -p 1
能够运用 NVIDIA-SMI 系列指令详解(4)-选择性查询选项(1) 中介绍的选择性查询指令查询的 AGGREGATE 聚合 ECC计数数据,各参数含义参见第四章,查询聚合 ECC 计数数据的指令示例如下:
nvidia-smi --format=csv,noheader --query-gpu=ecc.errors.corrected.aggregate.device_memory,ecc.errors.corrected.aggregate.dram,ecc.errors.corrected.aggregate.register_file,ecc.errors.corrected.aggregate.l1_cache,ecc.errors.corrected.aggregate.l2_cache,ecc.errors.corrected.aggregate.texture_memory,ecc.errors.corrected.aggregate.cbu,ecc.errors.corrected.aggregate.sram,ecc.errors.corrected.aggregate.total,,ecc.errors.uncorrected.aggregate.device_memory,ecc.errors.uncorrected.aggregate.dram,ecc.errors.uncorrected.aggregate.register_file,ecc.errors.uncorrected.aggregate.l1_cache,ecc.errors.uncorrected.aggregate.l2_cache,ecc.errors.uncorrected.aggregate.texture_memory,ecc.errors.uncorrected.aggregate.cbu,ecc.errors.uncorrected.aggregate.sram,ecc.errors.uncorrected.aggregate.total
重置 VOLATILE 易失性 ECC 计数为 0 运转示例:
nvidia-smi -p 0
能够运用 NVIDIA-SMI 系列指令详解(4)-选择性查询选项(1) 中介绍的选择性查询指令查询的 VOLATILE 易失性 ECC计数数据,各参数含义参见第四章,查询易失性 ECC 计数数据的指令示例如下:
nvidia-smi --format=csv,noheader --query-gpu=ecc.errors.corrected.volatile.device_memory,ecc.errors.corrected.volatile.dram,ecc.errors.corrected.volatile.register_file,ecc.errors.corrected.volatile.l1_cache,ecc.errors.corrected.volatile.l2_cache,ecc.errors.corrected.volatile.texture_memory,ecc.errors.corrected.volatile.cbu,ecc.errors.corrected.volatile.sram,ecc.errors.corrected.volatile.total,ecc.errors.uncorrected.volatile.device_memory,ecc.errors.uncorrected.volatile.dram,ecc.errors.uncorrected.volatile.register_file,ecc.errors.uncorrected.volatile.l1_cache,ecc.errors.uncorrected.volatile.l2_cache,ecc.errors.uncorrected.volatile.texture_memory,ecc.errors.uncorrected.volatile.cbu,ecc.errors.uncorrected.volatile.sram,ecc.errors.uncorrected.volatile.total
附加选项
-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 之间同享。