英伟达(NVIDIA)高端显卡正变得愈发稀缺且昂贵,但即便入手,其性能也并未完全释放。英伟达将GeForce系列显卡的张量核心速度限制在正常水平的一半,用于处理FP16、BF16和TF32等AI常用数学运算;而采用相同硅片设计的专业级显卡则以全速运行,以匹配其高昂售价。

今年十月,开发者Zagitta发布了免费开源工具gpu-unlock,旨在解除RTX 20、30和40系列显卡上的这一人为瓶颈。

打破性能枷锁

gpu-unlock是一个小型Linux内核模块,在英伟达驱动程序加载前运行,将张量核心切换至全速状态,随后将控制权交还原厂驱动。每次开机时,它都会自动移除速度限制。

实际效果因型号而异。RTX 30系列支持最为稳定,已有超过100份用户报告验证(包括RTX 3090);RTX 40和20系列的支持仍处于实验阶段;RTX 50系列目前不受支持,且开发者预计这一情况不会改变。

性能提升主要集中在张量核心数学运算上。理论上,张量吞吐量实现翻倍。以RTX 3090为例,其在BF16矩阵运算中的性能从75 TFLOPS提升至125 TFLOPS。在实际负载中,提示词处理速度提升25%–55%,微调速度提升25%–50%,图像生成速度提升30%–55%。需要注意的是,该优化对游戏性能毫无帮助。

官方版本仅支持Linux。虽有开发者构建了实验性Windows版本,但仅支持特定硬件组合,且网络上流传的其他Windows安装程序存在风险,需格外小心。对于构建本地大语言模型(LLM)环境的用户而言,Linux通常是更成熟的选择。

安装与配置指南

整个安装过程仅需几分钟,核心步骤包括构建模块、配置内核引导及重启。

1. 克隆仓库并构建模块

使用Git克隆gpu-unlock仓库并进入目录:

git clone https://github.com/Zagitta/gpu-unlock
cd gpu-unlock

建议在解锁前运行基准测试以便后续对比。随后执行以下命令构建并安装,系统会自动检测发行版、获取依赖及英伟达文件:

make install

过程中需输入sudo密码。

2. 配置内核引导

模块安装后处于闲置状态,需配置GRUB引导程序使其在启动时加载。打开配置文件:

sudo nano /etc/default/grub

找到GRUB_CMDLINE_LINUX_DEFAULT行,在引号内现有内容后添加gpu_unlock.targets=all:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash gpu_unlock.targets=all"

保存并退出(Ctrl+O保存,Ctrl+X退出),随后更新GRUB配置:

sudo update-grub

注:Arch Linux用户请使用sudo grub-mkconfig -o /boot/grub/grub.cfg。

3. 重启并验证

重启电脑。若GPU负责显示输出,启动期间屏幕短暂黑屏属正常现象。机器正常启动且无报错后,可通过以下命令检查内核日志确认生效:

journalctl -k -b | grep gpu_unlock

随后重新运行基准测试,观察性能数据变化。

注意事项与局限性

笔记本电脑的GPU空闲时,电源管理功能可能会重置解锁状态;休眠模式不受支持,但常规睡眠模式可用。由于GPU全速运行,温度会略有升高,但英伟达原有的节流机制仍然适用。如需恢复原状,只需从GRUB配置中移除相关标志并重启。

对于Ollama用户,令牌生成受限于内存速度,因此速度无提升。llama.cpp或Ollama中的量化GGUF模型性能提升幅度在0%到15%之间,主要体现在长上下文场景。该工具在运行未量化模型、微调或生成图像时效果最为显著。