GitHub 上的新仓库 Zagitta/gpu-unlock,创建 7 天,已有 3628 星(平均每天 505 星)。
Unlock FP/BF16 instruction issue rate on Nvidia 3000's cards to their professional equivalents
语言:C
README:
GPU unlock 1.0.0
Unlock FP/BF16 instruction issue rate on Nvidia 3000's cards to their professional equivalents
This Linux kernel module combines the CMP unlocker's V67/PLM technique with the pre-driver timing of the UEFI approach. It runs the unlock, writes the speed selectors (SS0 0x88888888, which selects the full BF16 rate, and the 4-bit SS1 0x8 IMLA4) and performs FLR before the unmodified NVIDIA driver binds the card. It is neither a UEFI application nor a patched NVIDIA driver.
The benefit of this early kmod driver is that it does not require manual patching each time nvidia releases a new driver version.
The effect of this unlock is that it doubles the instruction issuing speed of FP/BF16 FMA into FP32 operations on GA102, GA103, GA104 and GA106 cards.
3090 Ti dense 8192³ GEMM at 450 W, five-sample medians with FP32 accumulation:
| Input |
Before |
After |
| FP16 |
87.46 TFLOPS |
118.39 TFLOPS |
| BF16 |
87.50 TFLOPS |
157.41 TFLOPS |
| TF32 |
42.58 TFLOPS |
82.61 TFLOPS |
Tested cards
Results reported by users. The module accepts every GeForce ID listed in
kernel/gpu_unlock/main.c, but the cards below are the ones someone has
reported on. Please add yours with a
compatibility report,
whether it worked or not.
| Chip |
Card |
PCI ID |
Result |
BF16 GEMM gain |
Reports |
| GA102 |
RTX 3090 Ti |
10de:2203 |
Unlocked |
+68–80% |
#1 |
| GA102 |
RTX 3090 |
10de:2204 |
Unlocked |
+25–67% |
#5, #9, #10, #17, #25, #27, #33 |
| GA102 |
RTX 3080 Ti 20 GB (OEM, GA102-250) |
10de:2205 |
Unlock completes, BF16 stays at half rate |
— |
#28 |
| GA102 |
RTX 3080 10 GB |
10de:2206 |
Unlocked |
+70–73% |
#14 |
| GA102 |
RTX 3080 20 GB (memory upgrade) |
10de:2206 |
Unlocked |
+56–59% |
#10, #15 |
| GA104 |
RTX 3070 |
10de:2484 |
Unlocked |
+73–81% |
#10, #12 |
| GA104 |
RTX 3070 Ti |
10de:2482 |
Not tested with this module (the same unlock worked from a UEFI port on Windows) |
— |
#32 |
| GA106 |
RTX 3060 12 GB |
10de:2504 |
Unlocked |
about +80% |
#13, #31 |
| GA103 |
any |
10de:2414 |
No reports yet |
— |
— |
The gains are dense GEMM throughput from each report's own benchmark, so
they are not directly comparable. The power limit matters a lot: the lowest
figure (+25%) is from cards capped at 225 W.
Matrix-heavy work speeds up: LLM prefill (+14–36% in
#9,
#15,
#25 and
#33), diffusion and
FlashAttention. LLM decode, which is limited by memory bandwidth, and INT8
work stay about the same. The reports that compared outputs found them
bit-identical before and after.
Reports also cover up to four cards in one machine, the card driving the
display, and cards passed through to a VM with vfio-pci
(#17).
How to install
First run:
git clone https://github.com/Zagitta/gpu-unlock
cd gpu-unlock
make install
Then append gpu_unlock.targets=all to your kernel command line, keeping
existing options:
- GRUB (Debian/Ubuntu/Mint): add it inside
GRUB_CMDLINE_LINUX_DEFAULT
in /etc/default/grub, then run sudo update-grub.
- GRUB (Arch/CachyOS): same edit, then run
sudo grub-mkconfig -o /boot/grub/grub.cfg.
- Fedora/RHEL: run
sudo grubby --update-kernel=ALL --args="gpu_unlock.targets=all".
- systemd-boot: append it to the
options line in your boot entry
(bootctl status shows its location).
- UKI / generated entries: add it to
/etc/kernel/cmdline and regenerate
your boot images/entries (e.g. sudo mkinitcpio -P for mkinitcpio UKIs).
Local build
Every build downloads the pinned NVIDIA/CachyOS inputs over HTTPS, checks
their SHA-256, and generates firmware only in the build directory and the
binary package. All three formats install through the same make install-*
targets. Packages are built from the committed HEAD.
Build, install build dependencies, and install the packages in one step
(asks for your sudo password):
make install # detect the distribution and select an installer
make install-arch # makepkg -sif
make install-deb # apt-get build-dep, dpkg-buildpackage, apt-get install
make install-rpm #
原文版权归 GitHub 爆发仓库 及原作者所有,本站转载仅供阅读。如需删除,请联系 support@aisa.one。