La tecnologia Resizable BAR (Base Address Register) consente a una scheda grafica di accedere direttamente e in modo più efficiente alla memoria di sistema. Questo può portare a miglioramenti delle prestazioni nei giochi e in altre applicazioni. AMD l’ha resa famosa con l’introduzione delle sue CPU Ryzen serie 5000 e delle GPU RX 6000, nel 2020.
Le GPU moderne traggono grandi vantaggi dall’abilitazione della Resizable BAR, almeno in alcuni scenari. Non è raro che le GPU Radeon riescano a guadagnare tra il 5% e il 24% in termini di prestazioni. Basti pensare che in ambito gaming sia AMD che NVidia sfruttano specifici profili per gestire Resizable BAR, abilitandoli solo quando ciò risulta appropriato e può portare a effettivi guadagni in termini di performance.
Resizable BAR esiste di fatto dall’epoca della presentazione dell’interfaccia PCIe Gen 2.0 (2007). Tuttavia, non ha mai attirato l’attenzione dei produttori mainstream fintanto che AMD non ne ha realizzato il potenziale anni dopo, presentando la sua soluzione Smart Access Memory.
ReBarUEFI: ottimizzazione delle prestazioni tramite Resizable BAR su sistemi non ufficialmente supportati
Uno sviluppatore indipendente ha svolto una ricerca approfondita sul comportamento di Resizable BAR spiegando che questo strumento non solo fornisce benefici prestazionali generali ma è addirittura necessario per garantire un funzionamento ottimale delle GPU Intel Arc.
La modifica pubblicata su GitHub, che assume la forma di patch per UEFI (Unified Extensible Firmware Interface), permette di abilitare Resizable BAR sui sistemi antecedenti al 2020, spingendosi addirittura fino alle CPU Intel Sandy Bridge dell’ormai lontano 2011.
ReBarUEFI è un driver DXE (Driver Execution Environment) per UEFI progettato per l’attivazione di Resizable BAR su tutti quei sistemi che non supportano ufficialmente tale funzione. Di base il supporto si concentra sui sistemi equipaggiati con GPU Intel Arc; se si utilizza una GPU NVidia Turing, lo sviluppatore del progetto suggerisce di ricorrere a NvStrapsReBar per abilitare Resizable BAR.
Per l’eventuale installazione e l’utilizzo di ReBarUEFI, è consigliato seguire attentamente la guida nella pagina wiki. Dopo l’avvenuta modifica del firmware, è importante verificare che 4G Decoding sia abilitata e che CSM sia disattivato. Il modulo ReBarState, da eseguire successivamente, permette di impostare la dimensione di Resizable BAR. La dimensione consigliata è 32 (illimitata), ma potrebbe essere necessario utilizzare dimensioni minori in caso di problemi.
Cosa sono 4G Decoding e CSM
Quando l’opzione 4G Decoding è abilitata, il sistema operativo e il firmware UEFI/BIOS possono utilizzare più di 4 GB di spazio di indirizzamento fisico per gestire le periferiche di I/O. In particolare, questa opzione è spesso necessaria quando si utilizzano schede di espansione che richiedono una quantità significativa di spazio di indirizzamento, come ad esempio le schede grafiche avanzate, controller di storage o altre periferiche PCIe ad alte prestazioni.
CSM, acronimo di Compatibility Support Module, è una caratteristica dell’ambiente UEFI progettata per garantire la compatibilità con i sistemi operativi e le applicazioni progettati per il BIOS tradizionale, noto come Legacy BIOS. L’utilizzo di CSM può rallentare alcune funzionalità avanzate e prestazioni offerte dall’ambiente UEFI. Inoltre, la sua disattivazione aiuta a liberare risorse e ottimizzare l’efficienza complessiva del sistema. In un altro articolo abbiamo visto cos’è CMS nel BIOS UEFI e quando è utile.
Come può migliorare le prestazioni un aumento del valore di Resizable BAR
La Resizable BAR modifica l'”apertura” del bus PCIe per consentire il trasferimento di volumi importanti di dati all’interno di un unico “pacchetto”, oltre i 256 MB.
Senza ricorrere a Resizable BAR, le dimensioni dei pacchetti sono limitate; abilitando l’opzione, il valore può crescere in modo sostanziale migliorando le performance complessive.
Oggi sia AMD che NVidia, come accennato in precedenza, intervengono attivamente per definire le specifiche di Resizable BAR, di volta in volta, in maniera tale da ottenere le migliori prestazioni possibili.
Con la “mod” non ufficiale realizzata e pubblicata su GitHub, i possessori di vecchi sistemi più vecchi possono hanno l’opportunità di ottenere prestazioni migliorate. Ciò è particolarmente utile per tutti coloro che sono orientati ad aggiornare le loro macchine con GPU più recenti, a loro volta compatibili con Resizable BAR. Alcune GPU, come quelle della serie Arc A, sono così sensibili alla presenza della Resizable BAR che Intel ne richiede l’abilitazione al fine di assicurare buone prestazioni.