有开发者做了一个小工具,专门让英特尔锐炫显卡在没有 Resizable BAR 选项的老主板上用满显存,不用改 BIOS,也不用动驱动。作者拿一台双路至强 E5-2670 v2 老服务器搭配锐炫 B580 实测,显存带宽从 15GB/s 拉到 392GB/s,提升了 26 倍。
工具叫 arc-rebar,作者是 Rod Burlamaqui,代码放在 GitHub 上,个人免费使用,商用需要另外谈授权。它只做一件事:开机时帮锐炫显卡把被卡住的显存窗口打开。
锐炫对 ReBAR 的依赖比别家显卡重得多。英特尔早就说过,老平台没有 ReBAR,最好别选锐炫。没有它,CPU 只能透过一个 256MB 的小窗口看显存。B580 有 12G 显存,单次想申请超过 256MB 就会失败。

arc-rebar 作者画的示意图:上半是显存窗口卡在 256MB,下半是重新扫描后拿到 16GB 窗口
很多老主板的 BIOS 里压根没有这个选项。以前的办法是往主板固件里加 ReBarUEFI 这类模块,等于要自己动手改 BIOS。
真正的堵点其实在显卡自身。锐炫卡里面集成了一颗 PCIe 交换芯片,这颗芯片的上行端口自己占着一块 8MB 的地址空间,开机时被固件分到和显存窗口同一段里。驱动想把显存窗口扩到 16GB,内核会一层层往上释放桥接窗口,偏偏不释放这块 8MB,扩容就失败了。
arc-rebar 在开机早期、显卡驱动加载之前动手。它先改写显卡的 ReBAR 寄存器,告诉系统自己想要更大的窗口,然后把显卡所在的整个 PCIe 根端口从系统里移除,再重新扫描一遍。显卡被当成新设备重新识别,那块 8MB 没人占着了,内核 就能把 16GB 窗口一次分配下来。整个过程在 initramfs 里完成,BIOS、内核和英特尔的驱动都不用改。
作者的测试机很有代表性。主板是超微 X9DRH-7TF,C602 芯片组,两颗至强 E5-2670 v2,BIOS 停在 2015 年的版本,菜单里没有 ReBAR,系统是 Debian 13,显卡是锐炫 B580 12G。

本次测试使用的 Intel Arc B580 12G 显卡
开启之前,CPU 能直接访问的显存只有 256MB。开启之后系统分到一个 16GB 的窗口,12G 显存全部能访问,显存带宽从 15GB/s 变成 392GB/s。作者还拿 ffmpeg 跑了一个 4K 的 Vulkan 模糊滤镜,原本卡死、一帧都出不来,现在每秒 39 到 50 帧。
门槛也写得很清楚。主板必须支持 Above 4G Decoding,4GB 以上要有足够的地址空间;显卡要直接插在主板插槽上,独占一个 PCIe 根端口,中间隔着转接卡、外置扩展坞都不行;系统只支持 Debian 和 Ubuntu,建议内核 6.12 以上,Windows 用不了。目前只在 B580 这一代 Battlemage 上实测过,上一代 Alchemist 作者认为原理相同,还没测。
英特尔自己的工程师早在 2025 年就提交过一个内核补丁解决同一个问题,但审核卡住了,到 7.1 版内核都没合进主线。arc-rebar 相当于把这件事从系统外面先做了。
受益最大的,是手里有老服务器、老工作站,又打算装 Linux 跑计算或者 AI 推理 的人。一张 B580 插进十多年前的双路至强平台,12G 显存现在能整块用上了。
|