网站菜单

Debian 的 NVIDIA 显卡超频和风扇速度设置

等等党离 3080 买 3080 的时候不远了。矿潮退去,但 40 系还没有发布,即便现在一张箱说全的 3080 已经进入 3500 块钱的价位,相信很多臭打游戏的依然持币观望,或者索性等 40 系发布后观看空中飞人表演。不过像琐叔这样把机器学习作为副业来搞的中年男人,看到这矿卡的价格,还是有些心动的。矿卡到底能不能买,这里不下结论,因为这事儿三分靠运气、七分靠人品,大家都别买,我反正是准备伺机买个几张。

借着这个话题,我来讲讲机学狗的必备技能,那就是在 Linux 下对 NVIDIA 进行超频、设置风扇转速。这里采用的是 Debian,纯命令行方式配置,不需要借助 GUI。

我们用的发行版是 Debian 11,默认不安装桌面环境(需要安装 ssh)。

安装 NVIDIA 显卡驱动

这里以 3080 为例,我们需要到 NVIDIA 官方网站下载驱动,在命令行里赋予安装文件执行权限,然后运行它。具体安装过程不过多演示,根据提示操作即可。

wget https://us.download.nvidia.com/XFree86/Linux-x86_64/515.57/NVIDIA-Linux-x86_64-515.57.run
chmod +x
./NVIDIA-Linux-x86_64-515.57.run
shutdown -r now

NVIDIA显卡驱动下载

安装依赖

我们需要先安装显卡驱动之后才可以安装依赖,如果先安装依赖的话,在安装驱动的过程中会出错。

apt -y install build-essential libglvnd-dev pkg-config xorg lightdm lightdm-gtk-greeter

设置 XORG 超频参数

超频需要依赖 XORG 设置虚拟桌面,否则超频参数并不会生效。我们通过 nvidia-xconfig 来自动生成 xorg.conf (位置在 /etc/X11/xorg.conf)

nvidia-xconfig --cool-bits=24 --enable-all-gpus

生成 xorg.conf 之后需要编辑这个文件,找到 “Section Screen”,并且加入以下设置:

Option         "AllowEmptyInitialConfiguration" "True"
Option         "ConnectedMonitor" "DFP-0"
Option         "Interactive" "False"

这里每一个 section 对应一张显卡的虚拟桌面,我这边总共有 6 张显卡,所以设置好之后是这样的(以下内容只是一个 exmaple ,请勿直接使用):

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "AllowEmptyInitialConfiguration" "True"
    Option         "ConnectedMonitor" "DFP-0"
    Option         "Interactive" "False"
    Option         "Coolbits" "28"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    Option         "AllowEmptyInitialConfiguration" "True"
    Option         "ConnectedMonitor" "DFP-0"
    Option         "Interactive" "False"
    DefaultDepth    24
    Option         "Coolbits" "24"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen2"
    Device         "Device2"
    Monitor        "Monitor2"
    DefaultDepth    24
    Option         "AllowEmptyInitialConfiguration" "True"
    Option         "ConnectedMonitor" "DFP-0"
    Option         "Interactive" "False"
    Option         "Coolbits" "24"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen3"
    Device         "Device3"
    Monitor        "Monitor3"
    DefaultDepth    24
    Option         "AllowEmptyInitialConfiguration" "True"
    Option         "ConnectedMonitor" "DFP-0"
    Option         "Interactive" "False"
    Option         "Coolbits" "24"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen4"
    Device         "Device4"
    Monitor        "Monitor4"
    DefaultDepth    24
    Option         "AllowEmptyInitialConfiguration" "True"
    Option         "ConnectedMonitor" "DFP-0"
    Option         "Interactive" "False"
    Option         "Coolbits" "24"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen5"
    Device         "Device5"
    Option         "AllowEmptyInitialConfiguration" "True"
    Option         "ConnectedMonitor" "DFP-0"
    Option         "Interactive" "False"
    Monitor        "Monitor5"
    DefaultDepth    24
    Option         "Coolbits" "24"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

为了防止其他程序对 xorg.conf 进行修改,我们需要对它进行改动保护:

chattr +i /etc/X11/xorg.conf

这一步可选,但建议设置。后期如果需要对文件进行改动,可以去掉保护:

chattr -i /etc/X11/xorg.conf

设置开机启动 lightdm

systemctl enable lightdm

设置完之后重启,通过 nvidia-smi 命令查看显卡状态,看到 xorg 占用显卡进程就算成功了。

|    0   N/A  N/A       572      G   /usr/lib/xorg/Xorg                  6MiB |
|    1   N/A  N/A       572      G   /usr/lib/xorg/Xorg                  6MiB |
|    2   N/A  N/A       572      G   /usr/lib/xorg/Xorg                  6MiB |
|    3   N/A  N/A       572      G   /usr/lib/xorg/Xorg                  9MiB |
|    4   N/A  N/A       572      G   /usr/lib/xorg/Xorg                  9MiB |
|    5   N/A  N/A       572      G   /usr/lib/xorg/Xorg                  9MiB |

超频与风扇转速设置

通过刚才一通配置,开机应该就通过 lightdm 自动启动了 X。接下来介绍几个关键设置,分别是开启 persistence mode (持久化模式)、设置显卡最大功率值、设置 core clock、锁定 core clock、设置 Mem Clock 以及风扇转速。

开启 persistence mode

nvidia-smi -pm ENABLED

以上命令默认开启所有显卡的持久化模式。如果想单独对某张显卡开启,可以用下面的命令:

nvidia-smi -i 0 -pm ENABLED

这里的 0 是显卡 ID,对应的是 nvidia-smi 命令显示的 GPU 编号。

设置显卡最大功率

nvidia-smi -pl 280

以上命令默认对所有显卡设置,单独设置某张显卡可以添加 -i 参数:

nvidia-smi -i 0 -pl 280

-pl 后面的数值指的是功率数值,单位是 W。这里代表将 0 号显卡的功率设置为 280 瓦。

设置 Core Clock

Core Clock 是显卡核心频率,矿工玩降压超频,一般都会将 Core Clock 频率降低,我们这里加 100。

DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 nvidia-settings -a '[gpu:0]/GPUGraphicsClockOffset[4]=100'

这里的 GPU:0 代表第 0 张显卡,每张显卡的 Core Clock 需要分开设置,具体参考 nvidia-smi 命令中的 GPU ID,Offset 后面的数值一般不需要动,默认支持 30 系。

锁定 Core Clock

有些时候我们需要把核心频率限制在某个值以内(比如矿老板),这时候需要锁定 Core Clock:

nvidia-settings -i 0 -lgc 1400

lgc = Lock GPU Clock

为了调试,我们可以解锁 Core Clock 并重新设置,解锁命令是:

nvidia-settings -i 0 -rgc

rgc = Reset GPU Clock

设置 Mem Clock

一般来说 Core Clock 设置需要非常谨慎,因为核心频率太高可能会 boom 。相比起 Core Clock ,内存频率的超频幅度会大得多。比如我们将 GPU 0 的内存频率增加 2200 :

DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 nvidia-settings -a '[gpu:0]/GPUMemoryTransferRateOffset[4]=2200'

设置风扇转速

3080 的 GDDR6X 向来比较热,所以设置风扇转速是有必要的,我们设置到 80%:

DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 nvidia-settings -a '[gpu:0]/GPUFanControlState=1'
DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 nvidia-settings -a '[fan:0]/GPUTargetFanSpeed=80'

有些显卡的多个风扇是可以单独设置的,所以需要自己测试一下,比如添加 fan:1 fan:2 等等

其他常用命令

查询 GPU 参数

DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 nvidia-settings -q '[gpu:0]/GPUPerfModes'

查询风扇数量

DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 nvidia-settings -q fans

查看显卡名称

nvidia-smi -L

查看显卡名称、BUD iD 和 vBIOS 版本

nvidia-smi --query-gpu=gpu_name,gpu_bus_id,vbios_version --format=csv

查看显卡的全部参数

nvidia-smi -q

查看显卡工作情况(负载)和工作频率

nvidia-smi -q -d UTILIZATION,CLOCK

重启显卡所有设定(超频参数、风扇转速等)

nvidia-smi -r

暂且写到这里。其实不管是矿工、机学狗还是臭打游戏的,显卡超频是非常古老的玩法,只是多少和持续时间的问题,对于二手卡,尽管「默认矿」,只要价格合适,还是可以入的,至于价格多少算合适,就看个人了。毕竟当年 1080Ti 也有 1000 出头的时候,而一张 RX580 也只不过要 300 大洋。感觉绝大多数人都不在乎矿与不矿,在乎的只是矿老板 5499 买了张 3080 挖了两年之后还 5499 卖你。

大家都别等 3080 买 3080 了,等 1080 买 3080 吧。

显示评论 (0)

文章评论

相关推荐

Minio 对象存储进阶:为 Bucket 配置访问策略

这篇文章描述了创建 Minio Bucket(存储桶)、配置存储桶访问策略和设置授权用户(和对应的口令)的方法,这种配置策略支持多个用户,并且根据用户来区分不同存储桶的访问权限。 上篇我们介绍了通过 …

使用 Minio 构建支持通用 S3 协议的对象存储存

做网站用图床是一个常见做法,好处是把静态文件放在一个专门的服务器上分担主站点的流量,通过异步延迟载入图片来优化网站的载入速度,本文介绍 Minio 的基本配置方法。 下载 Minio wget htt…