P104炼丹

以管理员身份运行的命令提示符(CMD)或 Windows PowerShell 中进行。

命令 功能 示例(请根据情况调整数值)
nvidia-smi -pl <功率值> 设置显卡功耗上限(单位:瓦特),可精确到两位小数 nvidia-smi -pl 100 (将功耗墙设定为100W)
nvidia-smi -lgc <最小值>,<最大值> 限制GPU核心频率范围(单位:MHz) nvidia-smi -lgc 500,1200 (将核心频率限制在500-1200MHz)-lgc 1300 限制在1300
nvidia-smi -lmc <最小值>,<最大值> 限制显存频率范围(单位:MHz) nvidia-smi -lmc 500,4000 (降低显存频率以减少发热)

查询限制可用范围

使用 nvidia-smi -q -d SUPPORTED_CLOCKS 命令查看显卡支持的频率范围

如果出现频率第一和第二差距过大,可能是显存频率表被修改过,例如P104是矿卡。

image-20250927195348081

nvidia-smi -q -d CLOCK 查看当前的 GPU 时钟速度、默认时钟速度和最大可能的时钟速度

恢复默认设置

1
2
nvidia-smi -rgc  # 恢复GPU时钟设置
nvidia-smi -rmc # 恢复显存时钟设置

如果你希望自己的设置可以一键运行,可以创建bat脚本。

1
2
3
@echo off
nvidia-smi -lgc 500,1200`
nvidia-smi -lmc 500,4000

常用命令:nvidia-smi

输出解析:

  • NVIDIA-SMI: NVIDIA-SMI是NVIDIA显卡的系统管理接口,可以用于获取显卡硬件和驱动程序的信息,以及进行一些基本的管理和监控操作。
  • Driver Version: 这是NVIDIA显卡驱动程序的版本号,表示当前系统中安装的NVIDIA驱动程序的版本号。
  • CUDA Version: 12.1: 这是CUDA的版本号,表示当前系统安装的CUDA版本号为12.1。CUDA是NVIDIA针对GPU的并行计算平台和编程模型,它可以使开发者利用GPU的并行处理能力来加速各种应用程序。
  • GPU:GPU编号,从0开始,图中0共0块GPU
  • Fan:风扇转速(0%-100%),N/A表示没风扇
  • Name:GPU名字/类型,图中1块为NVIDIA GeForce RTX 4090
  • Temp:GPU温度(GPU温度过高会导致GPU频率下降)
  • Perf:性能状态,从P0(最大性能)到P12(最小性能)
  • Pwr:Usager/Cap:GPU功耗,Usage表示用了多少,Cap表示总共多少
  • Persistence-M:持续模式状态,持续模式耗能大,但在新的GPU应用启动时花费时间更少 off
  • Bus-Id:GPU总线
  • Disp.A:Display Active,表示GPU是否初始化
  • Memory-Usage:显存使用率
  • Volatile GPU-UTil:GPU使用率,与显存使用率的区别可参考显存与GPU
  • Uncorr. ECC:是否开启错误检查和纠错技术,0/DISABLED,1/ENABLED,图中均为N/A
  • Compute M:计算模式,0/DEFAULT,1/EXCLUSIVE_PROCESS,2/PROHIBITED,图中均为Default
  • Processes:显示每个进程占用的显存使用率、进程号、占用的哪个GPU

-h 查看帮助手册:nvidia-smi -h

列出所有可用的 NVIDIA 设备 nvidia-smi -L

动态地观察 GPU 的状态:watch -n 0.5 nvidia-smi linux?

-i 查看指定GPU:nvidia-smi -i 0

-L 查看GPU列表及其UUID:nvidia-smi -L

-l 指定动态刷新时间,默认5秒刷新一次,通过Ctrl+C停止:nvidia-smi -l 5

只刷新某一GPU nvidia-smi -i 0 -l

-q 查询GPU详细信息:nvidia-smi -q
pcie接口速率,风扇转速,显存,ECC模式

只列出某一GPU的详细信息,可使用 -i 选项指定:nvidia-smi -q -i 0

在所有 GPU 上启用持久性模式:nvidia-smi -pm 1

指定开启某个显卡的持久模式:nvidia-smi -pm 1 -i 0

以 1 秒的更新间隔监控整体 GPU 使用情况:nvidia-smi dmon

以 1 秒的更新间隔监控每个进程的 GPU 使用情况:nvidia-smi pmon

nvidia-smi vgpu 查看当前vGPU的状态信息:

性能测试?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from ultralytics import YOLO

model = YOLO("yolov8n.pt")

# TensorRT FP32
out = model.export(format="engine", imgsz=640, dynamic=True, verbose=False, batch=8, workspace=2)

# TensorRT FP16
out = model.export(format="engine", imgsz=640, dynamic=True, verbose=False, batch=8, workspace=2, half=True)

# TensorRT INT8 with calibration `data` (i.e. COCO, ImageNet, or DOTAv1 for appropriate model task)
out = model.export(
format="engine", imgsz=640, dynamic=True, verbose=False, batch=8, workspace=2, int8=True, data="coco8.yaml"
)