惊人的免费 3090 提速技巧,经验证有效,免费提升 15% PP、5% TG 性能

Reddit r/LocalLLaMA 工具

摘要

gpu-unlock 1.0.0 发布候选版是一个 Linux 内核模块,通过在 NVIDIA 驱动绑定前解锁 RTX 3090 的 BF16 全速档位,免费实现约 15% 的提示词处理与 5% 的词元生成提速,无需修改驱动或 UEFI。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/10/21 20:27

Zagitta/gpu-unlock 来源:https://github.com/Zagitta/gpu-unlock # GPU unlock 1.0.0 打包候选版本 此 Linux 内核模块将 CMP 解锁工具的 V67/PLM 技术与 UEFI 方案在驱动加载前执行的时序相结合。它会执行解锁,写入速度选择器(SS0 0x88888888,用于选择完整 BF16 速率,以及 4 位 SS1 0x8,其效果尚未测试),并在未经修改的 NVIDIA 驱动绑定显卡之前执行 FLR。它既不是 UEFI 应用程序,也不是经过修补的 NVIDIA 驱动。已观察到的结果来自 GPU1,即位于 0000:21:00.0 的 RTX 3090,运行环境为 CachyOS 主线 7.2.8-1-cachyos 内核和 NVIDIA 615.71.09。位于 0000:01:00.0 的 GPU0 未经修改,用作对照。其他 RTX 3090 显卡和环境尚未验证。接受 GeForce 和 CMP GA102/GA104 的 PCI 设备 ID;不接受专业 RTX A 系列和数据中心型号。尚未测试任何 GA104 显卡,也未测试 RTX 3090 以外的 GA102 显卡;固件和 V67 映像均为 GA102 版本。其他芯片会被拒绝。 ## 本地构建 每次构建都会通过 HTTPS 下载固定版本的 NVIDIA/CachyOS 输入文件,检查其 SHA-256,并且仅在构建目录和二进制软件包中生成固件。所有三种格式都通过同一组 make install-* 目标安装。软件包从已提交的 HEAD 构建。一步完成安装构建依赖、构建和安装软件包(会要求输入 sudo 密码):sh make install-arch # makepkg -sif make install-deb # apt-get build-dep, dpkg-buildpackage, apt-get install make install-rpm # dnf builddep, rpmbuild, dnf install make arch、make deb 和 make rpm 仅执行构建。Debian 和 RPM 软件包分别输出至 build/deb 和 build/rpm。NVIDIA 输入文件缓存在 ~/.cache/gpu-unlock/inputs 中(make inputs;可通过 INPUTS= 覆盖)。dpkg-buildpackage 本身从不使用网络,因此在干净的 chroot 环境中构建(sbuild 或 pbuilder)时,需要将 GPU_UNLOCK_INPUTS 指向该缓存。make dist 归档、Debian 源码包和 .nosrc.rpm 均不包含 NVIDIA 归档文件或生成的固件。 ## 启动流程与显式启用 软件包会将 gpu_unlock 及其固件放入 initramfs,并在那里加载,使其在 nvidia 能够绑定显卡之前运行:- mkinitcpio: /etc/mkinitcpio.conf.d/zz-gpu-unlock.conf 会在 MODULES 中将 gpu_unlock 插入到 nvidia 的紧前方,从而尽可能缩短显示显卡的黑屏时间。如果映像中没有 nvidia,它会排在最后,但仍会先于从根文件系统加载的 nvidia 运行。安装时会重新构建映像。对于使用 -c 或预设中的 _config 构建的映像,mkinitcpio 会忽略附加配置文件;请自行在该配置的 MODULES 中将 gpu_unlock 放在 nvidia 的紧前方。- initramfs-tools: /usr/share/initramfs-tools/modules.d/gpu-unlock.conf。- dracut: /usr/lib/dracut/dracut.conf.d/gpu-unlock.conf。这里没有 softdep nvidia pre: 规则:kmod 仅遵循它读取到的第一条 softdep nvidia 行,因此其他软件包的规则(nvidia-utils、gddr6_hwmon)会悄然覆盖它,或者它会覆盖其他软件包的规则。除非通过内核命令行显式启用,否则该模块不会执行任何操作:gpu_unlock.targets=all # 所有尚未绑定的 GA102/GA104 显卡 gpu_unlock.targets=0000:21:00.0 # 仅这些显卡 gpu_unlock.targets=0000:21:00.0,0000:22:00.0 # 以逗号分隔 地址采用 lspci -D 输出的完整 PCI 名称(十六进制数字中的字母大小写均可),与 GPU 编号和显示用途无关。非 GA102/GA104 显卡的条目(包括将 all 与地址混用的情况)会被记录并忽略。各张显卡会并发解锁,无论数量多少,总共约需一秒,且每张卡独立处理:已绑定、已断电或已启用总线主控的显卡会被跳过。随后,nvidia 会照常加载并绑定所有显卡。显示显卡也可以使用。执行解锁固件步骤期间,其固件帧缓冲区(启动控制台和 Plymouth)会继续运行,并在显卡复位前被移除,正如 nvidia-drm 稍后本来也会做的那样。从复位开始直到 nvidia-drm 接管,屏幕会保持黑屏。解锁需要处于冷启动状态的显卡:请关闭机器电源,而不是重新启动。不支持热重启;启用该选项时,预计解锁会失败,并使显卡保持原状。启动后手动加载该模块,不会对已被 nvidia 绑定的显卡产生任何作用。如果显卡在本次通电周期中已被驱动使用,模块会在运行任何固件之前拒绝处理它(card already initialised since power on,即“显卡自通电以来已初始化”)。使用以下命令检查结果:sh journalctl -k -b | grep gpu_unlock lspci -nnk -s 0000:21:00.0 要停止解锁,请从内核命令行中移除 gpu_unlock.targets=;如果只想在某一次启动中停用,请在引导加载程序的编辑界面中将其删除。卸载软件包也会移除模块和 initramfs 附加配置文件。如果显卡上的固件始终不停止,模块会记录此情况,并保留固件可能仍在使用的 DMA 缓冲区,直到下次断电。再次尝试前请先关闭电源。内核模块和本地打包代码采用 GPL-2.0-only 许可证。生成的载荷派生自固定版本的 CMP 参考实现;NVIDIA 固件仍遵循其自身条款。署名和声明请参见 firmware/NOTICE.md 和 licenses/。# 支持我 帮助我购买更多 GPU <3 https://buymeacoffee.com/zagitta ETH: 0xf4eee937937f92038D70B16AbD7736D8a53a1c5c BTC: bc1qwpkwp70fn76z3s4kg2l9y3j4kst95twcznuugf SOL: 8Rih6HY7V4LcdjYHz4iSffT4fTniqw5CACaBigSVxNYu

相似文章

@no_stp_on_snek:哦啦啦,我们在这儿发现了什么?

X AI KOLs Timeline

据报道,一个 Linux 内核模块黑客手段在 NVIDIA RTX 3090 显卡上实现了快 1.9 倍的 BF16 张量运算,将 BF16 TFLOPS 从 82 提升到 155,并提高了 cuBLAS GEMM 性能——因为 NVIDIA 出厂时这些显卡的张量运算采用 fp32 累加,运行速度只有一半。