OPCIONES DE MODIFICACIÓN DEL DISPOSITIVO
Este artículo es una explicación detallada de los comandos de la serie NVIDIA-SMI Capítulo 8: Opciones de modificación del dispositivo (3), que presenta y demuestra el comando nvidia-smi y las opciones de modificación del dispositivo relacionadas con el reloj:
- Parámetros de frecuencia de reloj relacionados con SM de gráficos de GPU -lgc/-rgc.
- Parámetros de frecuencia de reloj relacionados con la memoria GPU -lmc/-rmc.
- Parámetros de frecuencia de reloj relacionados con la aplicación GPU -ac/-rac.
La opción de modificación del dispositivo es un comando para modificar el dispositivo GPU.La lista de parámetros admitidos es la siguiente:
-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 目标温度。
需要管理员权限
-lgc establece el rango de frecuencia del reloj de la GPU
Establezca el par especificado de rango de frecuencia de reloj <minGpuClock,maxGpuClock> (p. ej., 1500,1800) en el rango de frecuencia de reloj de GPU que se bloqueará (en MHz). Configurar esto anulará los relojes de las aplicaciones y tendrá efecto independientemente de si hay aplicaciones en ejecución en la GPU. La entrada también puede ser un único valor de reloj deseado (por ejemplo, <GpuClockValue>).
Aviso:
Se requieren privilegios de raíz.
Afecta a todas las GPU a menos que se especifique una sola GPU con el parámetro -i.
Solo admite series superiores a Volta.
Rango de valores: 0 ~ la frecuencia de reloj máxima admitida por el dispositivo
Ejecute los siguientes comandos para verificar la frecuencia de reloj máxima de gráficos, sm y memoria:
nvidia-smi --format=csv --query-gpu=clocks.max.graphics,clocks.max.sm,clocks.max.memory
Puede ejecutar el siguiente comando para ver la lista de frecuencias de reloj de GPU compatibles con el dispositivo:
nvidia-smi -i 0 --format=csv --query-supported-clocks=gpu_name,gpu_bus_id,gpu_uuid,gr
Los valores de frecuencia de reloj admitidos (unidad: MHz) son:
1440、1425、1410、1395、1380、1365、1350、1335、1320、1305、1290、1275、1260、1245、1230、1215、1200、1185、1170、1155、1140、1125、1110、1095、1080、1065、1050、1035、1020、1005、990、975、960、945、930、915、900、885、870、855、840、825、810、795、780、765、750、735、720、705、690、675、660、645、630、615、600、585、570、555、540、525、510、495、480、465、450、435、420、405、390、375、360、345、330、315、300、285、270、255、240、225、210
Ejecute el ejemplo:
Establezca el rango de frecuencia de reloj de GPU en <200,300> MHz. Ejecute el ejemplo:
nvidia-smi -lgc 200,300
Establezca la frecuencia de reloj de la GPU en 345 MHz para ejecutar el ejemplo:
nvidia-smi -lgc 345
-rgc restablecer la frecuencia de reloj de la GPU a los valores predeterminados
Restablece la frecuencia de reloj de la GPU a los valores predeterminados.
Aviso:
Se requieren privilegios de raíz.
Afecta a todas las GPU a menos que se especifique una sola GPU con el parámetro -i.
Solo admite series superiores a Volta.
Ejecute el ejemplo:
Restablezca la frecuencia de reloj de la GPU al valor predeterminado para ejecutar el ejemplo:
nvidia-smi -rgc
-lmc establece el rango de frecuencia del reloj de la memoria de la GPU
将指定的一对 <minMemClock,maxMemClock> 时钟频率取值范围(例如 5100,5100) ,设置为需锁定 的 GPU 内存时钟频率的范围(以 MHz 为单位)。输入也可以是一个单一的期望时钟值(例如<MemClockValue>)。
注意:
需要root权限。
除非使用 -i 参数指定单个 GPU,否则将影响所有 GPU。
取值范围:0~设备支持的最大时钟频率
可执行如下命令查看graphics、sm、memory的最大时钟频率:
nvidia-smi --format=csv --query-gpu=clocks.max.graphics,clocks.max.sm,clocks.max.memory
执行如下命令可以看到支持的 GPU 内存频率列表:
nvidia-smi -i 0 --format=csv --query-supported-clocks=timestamp,gpu_name,gpu_bus_id,gpu_serial,gpu_uuid,memory
可以看到,GPU内存频率仅支持 1593 MHz。
运行示例:
设置 GPU 内存时钟频率区间范围为 <500,600> MHz 运行示例:
nvidia-smi -lmc 500,600
注意:由于本环境A100设备不支持设置内存时钟频率,因此本命令并未执行成功,此处只是为了演示命令没有错误,在支持的设备上执行此命令将会返回执行成功结果。
设置 GPU 内存时钟频率为 550MHz 运行示例:
nvidia-smi -lmc 150
注意:由于本环境A100设备不支持设置内存时钟频率,因此本命令并未执行成功,此处只是为了演示命令没有错误,在支持的设备上执行此命令将会返回执行成功结果。
-rmc重置 GPU 内存时钟频率到默认值
重置 GPU 内存时钟频率到默认值。
注意:
需要root权限。
除非使用 -i 参数指定单个 GPU,否则将影响所有 GPU。
运行示例:
重置 GPU 时钟频率到默认值 运行示例:
nvidia-smi -rmc
注意:由于本环境A100设备不支持设置内存时钟频率,因此本命令并未执行成功,此处只是为了演示命令没有错误,在支持的设备上执行此命令将会返回执行成功结果。
-ac 设置应用程序的 GPU 内存和 SM 时钟频率取值范围
将指定的一对 <memory,graphics> 时钟频率值(例如 2000,800) ,设置为 GPU 上运行的应用程序的memory和graphics(SM)时钟频率值(以 MHz 为单位)。
注意:
需要root权限。
除非使用 -i 参数指定单个 GPU,否则将影响所有 GPU。
仅支持基于 Maxwell 的 GeForce 和 Kepler+ 系列的 Tesla/Quadro/Titan 设备。
取值范围:0~设备支持的最大时钟频率
可执行如下命令查看graphics、sm、memory的最大时钟频率:
nvidia-smi --format=csv --query-gpu=clocks.max.graphics,clocks.max.sm,clocks.max.memory
可以执行如下命令查看设备支持的 GPU 内存时钟频率 和 GPU 时钟频率列表:
nvidia-smi -i 0 --format=csv --query-supported-clocks=gpu_name,gpu_bus_id,memory,gr
得到 GPU 支持的时钟频率取值(单位:MHz)为:
1440、1425、1410、1395、1380、1365、1350、1335、1320、1305、1290、1275、1260、1245、1230、1215、1200、1185、1170、1155、1140、1125、1110、1095、1080、1065、1050、1035、1020、1005、990、975、960、945、930、915、900、885、870、855、840、825、810、795、780、765、750、735、720、705、690、675、660、645、630、615、600、585、570、555、540、525、510、495、480、465、450、435、420、405、390、375、360、345、330、315、300、285、270、255、240、225、210
GPU 内存支持的时钟频率为(单位:MHz)为:
1593
运行示例:
设置应用程序 GPU 内存时钟频率和 GPU SM时钟频率 为 <1593,600> MHz 运行示例:
nvidia-smi -ac 1593,600
注意:
设置ac时,需要保持persistence mode为enable状态,否则会有已知问题,如图:
可以通过:
nvidia-smi -pm 1
开启persistence mode。
设置ac时,对应的值必须是通过--query-supported-clocks查询支持的时钟频率,否则会报错,如图:
-rac 重置应用程序的 GPU 内存和 SM 时钟频率到默认值
重置应用程序的 GPU 内存和 SM 时钟频率到默认值
注意:
需要root权限。
除非使用 -i 参数指定单个 GPU,否则将影响所有 GPU。
仅支持基于 Maxwell 的 GeForce 和 Kepler+ 系列的 Tesla/Quadro/Titan 设备。
运行示例:
重置 GPU 时钟频率到默认值 运行示例:
nvidia-smi -rac
附加选项
-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 之间共享。