Intel Arc B580 consigue activar Resizable BAR en placas antiguas sin modificar la BIOS gracias a arc-rebar

Intel Arc B580 consigue activar Resizable BAR en placas antiguas sin modificar la BIOS gracias a arc-rebar

Las tarjetas gráficas Intel Arc pueden recuperar una parte importante de su rendimiento en determinadas placas base antiguas gracias a arc-rebar, una herramienta desarrollada por Rod Burlamaqui que permite activar Resizable BAR sin modificar la BIOS ni los controladores de Intel. El proyecto está dirigido a sistemas Linux cuyo firmware no ofrece esta función, especialmente necesaria para aprovechar las arquitecturas Alchemist y Battlemage.

Las primeras pruebas con una Intel Arc B580 de 12 GB muestran resultados llamativos: la ventana de memoria accesible desde la CPU pasó de 256 MiB a 16 GiB, mientras una prueba de cálculo aumentó su rendimiento de 15 a 392 GB/s. Sin embargo, estas cifras no representan una mejora equivalente en videojuegos, sino la eliminación de una limitación concreta de acceso a la VRAM.

arc-rebar soluciona un problema de asignación de memoria PCIe

Resizable BAR (ReBAR) permite que la CPU acceda a regiones amplias de la memoria gráfica, en lugar de utilizar una ventana tradicional de 256 MiB. Esta característica resulta especialmente importante para las GPU Intel Arc, cuyo rendimiento puede verse perjudicado cuando no está disponible.

El problema afecta a placas base antiguas que nunca recibieron soporte para ReBAR. Aunque algunas disponen de suficientes recursos PCIe, el firmware no configura correctamente la ventana de memoria necesaria, impidiendo que Linux amplíe el acceso a la VRAM.

Según la documentación del proyecto, las tarjetas Arc incorporan un switch PCIe interno cuyo puerto ascendente tiene un registro BAR de 8 MB. Cuando el controlador xe intenta ampliar la ventana de memoria gráfica, Linux encuentra ese recurso todavía asignado y puede rechazar la operación con el error -ENOSPC.

arc-rebar modifica el registro de control de ReBAR y fuerza una nueva enumeración del puerto raíz PCIe, permitiendo reasignar los recursos. La herramienta se ejecuta desde initramfs antes de cargar el controlador gráfico y repite el procedimiento en cada arranque, sin realizar modificaciones permanentes en el firmware.

A diferencia de soluciones como ReBarUEFI, no requiere incorporar módulos a la BIOS. No obstante, la placa sigue necesitando soporte para Above 4G Decoding y espacio de direccionamiento suficiente para alojar la nueva ventana de memoria.

Una Arc B580 pasa de 256 MiB a una ventana de 16 GiB

Burlamaqui probó el procedimiento en una Supermicro X9DRH-7TF con chipset Intel C602, equipada con dos procesadores Xeon E5-2670 v2 y una BIOS de 2015. El sistema utilizaba Debian 13, el kernel Linux 7.1.8 y una Intel Arc B580 de 12 GB.

Antes de aplicar la modificación, la CPU solo podía acceder directamente a 256 MiB de VRAM. Después, Linux consiguió asignar una ventana de 16 GiB, suficiente para abarcar los 12 GB físicos de la tarjeta. Los 4 GiB restantes no representan memoria adicional, sino espacio de direcciones reservado.

Los resultados publicados en GitHub reflejan estas diferencias:

Prueba Antes Después
Ventana de VRAM accesible 256 MiB 16 GiB
Rendimiento SAXPY 15 GB/s 392 GB/s
Filtro Vulkan 4K 0 FPS 39-50 FPS
Mayor asignación OpenCL 256 MiB 1 GiB

 

El resultado de 392 GB/s supone un incremento de aproximadamente 26 veces, pero existe un matiz fundamental: no corresponde al ancho de banda de la conexión PCIe. La prueba SAXPY mide operaciones sobre datos de la memoria gráfica, cuyo rendimiento estaba gravemente limitado por la configuración anterior.

De hecho, la B580 continúa funcionando mediante PCIe 3.0 x8, debido a las características de la placa Supermicro. La herramienta no modifica la velocidad del enlace ni aumenta el ancho de banda físico de la GDDR6, que Intel especifica en 456 GB/s para esta tarjeta.

Intel Arc B580 consigue activar Resizable BAR en placas antiguas sin modificar la BIOS gracias a arc-rebar

Vulkan recupera su funcionamiento, pero faltan benchmarks de videojuegos

La mejora también aparece en una prueba con FFmpeg y un filtro de desenfoque Vulkan sobre contenido 4K. Antes de activar ReBAR, el procesamiento quedaba bloqueado sin producir fotogramas. Con la modificación, el sistema consiguió procesar entre 39 y 50 FPS.

En OpenCL, la mayor asignación individual de memoria aumentó de 256 MiB a 1 GiB, aunque este último valor correspondía al límite del propio entorno de ejecución. En cambio, la codificación y decodificación mediante VAAPI ya funcionaban previamente, lo que demuestra que no todas las aplicaciones sufrían el mismo problema.

Estos resultados confirman mejoras importantes en cargas de cálculo y procesamiento gráfico, pero todavía no permiten cuantificar el beneficio en videojuegos comerciales. Para determinarlo harían falta benchmarks comparativos con las mismas condiciones, especialmente en títulos sensibles al acceso a memoria.

Por tanto, la ganancia de 26 veces observada en SAXPY no debe interpretarse como un aumento de FPS. La importancia del proyecto está en recuperar capacidades que el hardware ya ofrecía, pero que permanecían restringidas por la configuración PCIe.

Compatibilidad limitada a Linux y placas con Above 4G Decoding

Por ahora, arc-rebar está preparado para Debian y Ubuntu mediante initramfs-tools, con recomendación de utilizar Linux 6.12 o posterior. El sistema necesita Above 4G Decoding activado, suficiente espacio MMIO por encima de los 4 GB y una GPU conectada a su propio puerto raíz PCIe.

La herramienta descarta configuraciones con switches PCIe externos, determinados adaptadores o dispositivos compartiendo el mismo puerto raíz. Incorpora comprobaciones previas y procedimientos de recuperación para evitar aplicar cambios cuando no se cumplen los requisitos.

Solo se ha verificado experimentalmente su funcionamiento con una Intel Arc B580 Battlemage. El desarrollador considera que podría funcionar con Alchemist porque ambas generaciones comparten características del switch PCIe, pero todavía no existen pruebas equivalentes que confirmen esa compatibilidad.

Otro detalle es su licencia: el código está publicado en GitHub y su utilización personal es gratuita, pero no se distribuye bajo una licencia de código abierto. Las modificaciones necesitan autorización y los usos comerciales o empresariales requieren un acuerdo independiente con el desarrollador.

Para los propietarios de estaciones de trabajo y servidores antiguos, arc-rebar representa una alternativa interesante a sustituir la placa base únicamente para disponer de Resizable BAR. Su principal aportación es demostrar que determinadas limitaciones de las Intel Arc pueden resolverse durante el arranque de Linux, recuperando el acceso completo a la VRAM sin modificar permanentemente el hardware.

Vía: TechPowerUp

Sobre el autor