Resizable PCIe BAR and AMD Smart Access Memory Explained
October 28th, 2020 market a pretty significant milestone for AMD’s Radeon division as they released their brand new Radeon RX 6000 series of graphics cards based on the RDNA2 architecture. The 3 new graphics cards in the series, the AMD Radeon RX 6800, the RX 6800 XT, and the RX 6900 XT are supposed to go head-to-head with the best offerings from Nvidia’s RTX 3000 series. AMD has been trailing behind Nvidia in terms of GPUs for the better part of the decade but now with the new and improved RDNA2 architecture, AMD is finally bringing the competition that the market demanded. This is the first time in several generations that AMD’s top offering has been directly competitive to Nvidia’s top offering in terms of performance.
Not only did AMD improve upon the traditional rasterization performance of their cards as compared to the previous generation, but they also went ahead and added some pretty attractive features in their new lineup. Features like Real-Time Ray Tracing support (which you can learn more about right here) were sorely missed in the RX 5700 series as Nvidia’s Turing lineup of GPUs easily dominated the market due to that feature even at a higher price point. That has changed with the RX 6000 series as AMD has brought support for Real-Time Ray Tracing with the RDNA 2 architecture. AMD has also introduced a one-click overclocking feature known as “Rage Mode” that aims to further increase the performance once it is enabled.
Perhaps the most interesting feature that AMD has introduced in this generation is Smart Access Memory or SAM. This feature is currently exclusive to AMD and promises to deliver some performance improvements under the right conditions. Let us dive deep into SAM and analyze the mechanism behind this technology.
AMD Smart Access Memory
Probably the most interesting and simultaneously polarizing feature of the RX 6000 series of graphics cards is the Smart Access Memory or SAM feature. This feature would only be available to users with a Ryzen 5000 series CPU, a 500 series motherboard, and a Radeon RX 6000 series graphics card. Smart Access Memory is AMD’s branding for its implementation of the PCI Express Resizable BAR (Base Address Registers) capability. Smart Access Memory essentially allows the CPU to access the full amount of GDDR6 memory found on the RX 6000 series of graphics cards.
Usually, the CPU only has access to the VRAM is 256MB blocks or 256MB I/O Memory Address Regions. Smart Access Memory removes that limitation and allows the CPU direct access to the entire pool of VRAM. The GDDR memory is traditionally much faster than the standard DDR memory that is used by CPUs normally. The Ryzen 5000 series of processors can access this faster memory and can thus deliver additional levels of performance.
This is the first time that a company has released a feature that unlocks additional performance depending on the accompanying hardware that the user possesses. This decision was met with a mixed response from the community, with half the people really excited for the extra performance that can now be leveraged with an All-AMD build, and half the people disappointed that AMD is locking out the extra performance to CPUs of the 5000 series only. Neither any Intel CPU nor any older Ryzen CPU can leverage the extra performance as of the time of writing, which can come as a disappointment to the users of those platforms looking to buy an RX 6000 series GPU.
Smart Access memory is not something that has been invented by AMD. It is just an implementation of the PCIe Resizable BAR feature (which we will discuss in a moment). Therefore, SAM can work theoretically on all PCIe 3.0 and PCIe 4.0 motherboards as well as graphics cards. However, currently, AMD is limiting this implementation to only the new RX 6000 series of graphics cards. In addition to one of the shiny new Big Navi cards, you will require an AMD Ryzen 5000 series CPU based on the Zen 3 architecture, and a 500 series motherboard chipset.
On the software side, AMD has validated the feature on AMD Radeon Driver 20.11.2 or newer. You will also need to have the latest motherboard BIOS based on the AMD AGESA 188.8.131.52 microcode or newer. Currently, AMD has recommended and validated the following motherboards:
- ASUS X570 Crosshair VIII Hero WiFi
- ASRock X570 Taichi
- GIGABYTE AORUS X570 Master
- MSI X570 Godlike
These are just validated boards and SAM will almost definitely work with all B550 and X570 motherboards down the line.
If your system satisfies all the requirements for AMD Smart Access Memory, go ahead and update your BIOS to the latest available one from your motherboard’s product page. Now you need to enable Smart Access Memory manually.
The method to enable SAM will vary from motherboard to motherboard. In some boards, it probably won’t even be called Smart Access Memory. Some motherboard manufacturers have opted for options like Above 4G Decoding, Resizing BAR, or Resizable BAR. A quick search online with your specific motherboard’s model number will lead you to the right option.
For our guide, we are looking at the process for the ASUS Crosshair VIII Hero X570 motherboard. This would be enough to give a general idea of the method.
- First of all, you need to turn off CSM (Compatibility Support Module) and make sure it’s disabled. For this, go to the Boot menu and look for the CSM/Compatibility Support Module Set CSM to Disabled.
- Go to the Advanced menu and search for the PCI Subsystem Settings. On other motherboard models, it could be written as PCIe/PCI Express Configuration options.
- In these settings, enable Above 4G Decoding.
- From there, the option to configure Re-Size BAR Support will become available. Set it to Auto.
- Now Exit the Advanced Menu, and select Save Changes and Reset. Confirm the changes by verifying them and click OK.
- After a successful reboot of the motherboard, the PCIe Resizable BAR option (AMD Smart Access Memory) will be enabled for your Radeon RX 6000 series graphics card and Ryzen 5000 series CPU.
AMD claims that enabling Smart Access Memory will give you a small but free boost ranging from 2% up to 13% in gaming performance depending on the game. AMD presented a slide that shows that SAM can contribute to an increase in performance ranging from 2%-13% on average with some games delivering up to 14% more performance with both SAM and Rage Mode turned ON. Since SAM is completely free, you should definitely turn it ON if you have the right hardware.
Nvidia was quick to jump into the situation with an announcement that it is currently working on a similar feature to Smart Access Memory for their RTX 3000 series of graphics cards, and it will be released soon in a driver update for those cards. Nvidia claims that the technology behind the SAM feature is a standard inclusion in the PCIe specification and that Nvidia’s alternative will work on both Intel and AMD CPUs with a wider selection of motherboards as well. Nvidia also claimed that their internal testing shows similar performance to AMD’s claimed performance using SAM.
The technology that Nvidia is referring to is the Resizable PCIe BAR technology which is an open standard included by PCI-SIG in the PCIe standard in 2008.
Resizable PCIe BAR
So what exactly is Resizable PCIe BAR? Well, under the PCI Express physical bus, a virtual tunnel is generated between the graphics card and the process. This tunnel allows the processor to access the VRAM memory directly without any hindrance. Resizing this virtual tunnel allows the processor to have direct access to all of the memory pool of the GPU, which is what we are seeing with the new Smart Access Memory technology.
The way that Resizable PCIe BAR technology works is a little complicated. Essentially the kernel-mode driver resizes the accessible VRAM size to the entire memory size of the graphics card through a background process. It is important to note that although all the memory is available to the CPU for use, the priority is always given to the graphics card since the GPU needs to be fed with textures and asset data far more quickly. In a successful resize, the kernel-mode driver should expose a single memory segment named “CPUvisible” to the VRAM manager. The VRAM manager assigns the virtual addresses of the CPU directly to the memory that stays accessible as needed.
Resizable BAR (or Base Access Register) was actually proposed by HP and AMD back in 2008. These companies were the ones who proposed this idea to the PCI-SIG, which manages the PCI Express standard. Resizable BAR has received various names throughout the years, the most notable one being Smart Access Memory. Apart from SAM, the Resizable BAR has also been named ASRock Clever Access Memory by ASRock in its motherboards.
Support for Older Ryzen CPUs and Intel
One thing that is really promising in Nvidia’s announcement is the fact that it is reportedly supposed to work on Intel and older Ryzen platforms as well. This seems to work around AMD’s arbitrary limitation which did not go get a positive response from the tech community in the first place. It would be a shame if Nvidia’s implementation was compatible with older Ryzen processors and 400 series boards as well while AMD’s own SAM implementation was only compatible with Ryzen 5000 series processors and 500 series motherboards.
It seems to be possible that this feature would work on Intel and other Ryzen processors as well since there is nothing specific about the Resizable PCIe BAR that requires a Ryzen 5000 series CPU and a PCIe Gen 4 motherboard. In fact, Intel processors support the PCIe BAR technology ever since the Haswell architecture released in 2013. Therefore, Nvidia’s upcoming Resizable BAR implementation might become even more widespread than AMD’s Smart Access Memory.
Currently, AMD’s Smart Access Memory is locked to the AMD Ryzen 5000 series processors paired with a 500 series motherboard like B550 or X570 along with a Radeon RX 6000 series GPU. However, all signs seem to be pointing towards an upcoming PCIe Resizable BAR implementation from Nvidia for its RTX 3000 series graphics cards based on the Ampere architecture. This seems to be inevitable since Nvidia has already announced it, and furthermore, it is supposed to receive a wider range of compatibility while delivering similar performance.
It is possible that after Nvidia’s release of an equivalent PCIe Resizable BAR implementation, AMD would have to expand its compatibility net as well. There are simply not a lot of people that are buying an RX 6000 series graphics card with a Ryzen 5000 series CPU and a 500 series motherboard, especially with the ongoing global silicon supply issues. There are a lot more gamers and general consumers on older Ryzen processors with 400 series motherboards and even more Intel platform gamers that would love to have compatibility with this technology. Keeping this in mind, AMD would have to extend its compatibility range to older Ryzen CPUs, older motherboards, as well as Intel’s CPUs and motherboards sooner than later.
Since PCIe Resizable BAR technology is a PCI standard that is already built into the PCI spec, the wider compatibility net will ensure that this technology becomes mainstream over the next few generations. It increases performance for free, and even in the worst-case scenario, has no impact on performance. Therefore, it is reasonable to expect PCIe Resizable BAR technology to become a standard feature in the upcoming years.
AMD delivered one of the most interesting and simultaneously polarizing features with their RX 6000 series of graphics cards in October of 2020. The Smart Access Memory feature boosts performance for free provided that the user has a compatible set of hardware. The SAM feature is just a rebranding of the already existing PCIe BAR technology that is present in the PCI spec, so there is nothing that is preventing AMD from extending support of this technology to other CPUs and motherboards.
Nvidia took advantage of AMD’s exclusivity and announced their upcoming variant of the Resizable PCIe BAR technology that is supposed to work on a multitude of platforms with their RTX 3000 series of GPUs. This step from Nvidia should put pressure on AMD to expand the compatibility of their Smart Access Memory implementation, and we can expect this technology to become mainstream over the next few years.