Friday, December 4th 2020
AMD Ryzen 3000 and Older Zen Chips Don't Support SAM Due to Hardware Limitation, Intel Chips Since Haswell Support it
AMD Ryzen 3000 "Matisse" processors based on the "Zen 2" microarchitecture, as well as older AMD processors based on "Zen+" and "Zen" microarchitectures, do not support the company's Smart Access Memory (SAM) feature being introduced with Radeon RX 6000 series graphics cards. SAM is essentially a branding of the Resizable Base-Address Register (Resizable-BAR) feature developed by the PCI-SIG; which enables a processor to see a graphics card's entire video memory as a single addressable block, rather than through 256-megabyte apertures. Apparently the PCI-Express root complex of Ryzen 5000 "Vermeer" processors introduce an instruction called full-rate _pdep_u32/64, which is required for resizable-BAR to work.
It gets more interesting—Intel processors have been supporting this feature since the company's 4th Gen Core "Haswell," which introduced it with its 20-lane PCI-Express gen 3.0 root-complex. This means that every Intel processor dating back to 2014 can technically support Resizable-BAR, and it's just a matter of motherboard vendors releasing UEFI firmware updates for their products (i.e. Intel 8-series chipsets and later). AMD extensively advertises SAM as adding a 1-2% performance boost to Radeon RX 6800 series graphics cards. Since this is a PCI-SIG feature, NVIDIA plans to add support for it on some of its GPUs, too. Meanwhile, in addition to AMD 500-series chipsets, even certain Intel 400-series chipset motherboards started receiving Resizable BAR support through firmware updates.
Sources:
CapFrameX (Twitter), flyrobot27 (Reddit), University of Science and Technology of China
It gets more interesting—Intel processors have been supporting this feature since the company's 4th Gen Core "Haswell," which introduced it with its 20-lane PCI-Express gen 3.0 root-complex. This means that every Intel processor dating back to 2014 can technically support Resizable-BAR, and it's just a matter of motherboard vendors releasing UEFI firmware updates for their products (i.e. Intel 8-series chipsets and later). AMD extensively advertises SAM as adding a 1-2% performance boost to Radeon RX 6800 series graphics cards. Since this is a PCI-SIG feature, NVIDIA plans to add support for it on some of its GPUs, too. Meanwhile, in addition to AMD 500-series chipsets, even certain Intel 400-series chipset motherboards started receiving Resizable BAR support through firmware updates.
88 Comments on AMD Ryzen 3000 and Older Zen Chips Don't Support SAM Due to Hardware Limitation, Intel Chips Since Haswell Support it
That said, Intel isn't likely to support Resizable BAR on older CPUs. Like AMD, they want to only sell their newest. For that matter, Re-BAR support seems to be locked to their Z400-series Chipset too, so they don't even target the mid-range like AMD does with their B400-series.
Do you honestly believe support on Intel/Nvidia will come to anything other than the latest parts?
Kind of reminds me of vesa adaptive sync being around and no one taking advantage or implementing it for years.
Still almost impossible to find a monitor with official DP1.4 certification and look how old that spec is now.
Also strange that AMD has not implemented until now, but I guess back in 2014 they probably had bigger things to worry about?
www.techpowerup.com/forums/threads/asus-brings-resizable-bar-support-to-intel-z490-h470-b460-platforms.275415/page-2 I'm not certain it can be implemented on a MB chipset older than x570/B550 and I think the decoding on the CPU side itself might not even be present on ZEN2 to properly accomplish it for that matter. It compresses data sent across the bus which I believe the chipset controls then decompresses it on the CPU. It requires both far as I can tell it's much much like a GPU and display with different HDMI/Display port specs need to be met. It's actually dead simple to implement if it's what I believe it to be I can probably do it myself. It's pretty much already implemented within the bios spec, but was set conservatively for the older 256MB standard and option hidden to the end user. As far as MB makers actually enabling the option that's hard to say and how far back they'd go in doing so is another matter though it's certainly quite plausible. It's interesting it goes back to Haswell on Intel side of things that means a Broadwell chip could potentially enable it which is really quite a interesting thing to contemplate with that EDRAM chip makes me wonder how nicely they play together.
Its disgusting what intel is, is all.
Secondly, many elements of the article are incorrect. PDEP commands were introduced in BMI2 which is supported by AMD since Excavator. They aren't a PCIE physical layer 'feature'. Whilst Zen3 accelerated these instructions to a level in line with Intel (with lower latency), it hasn't been shown that the Zen2 performance was too low to support SAM/Resizable BAR. The conclusion is therefore not supported by the evidence presented.
It seems plausible that after AMD optimized those CPU instructions on Zen 3 they started using them in their video card drivers, and that's probably where the main benefit comes from. Then they probably found that things will work a bit better if you give those instructions access to the video card memory as one continuous address space as well, so they used the two features together under the SAM name.
Would have made any sense to implement the two optimizations as separate features, assuming it could be done? From our perspective as users, probably. From their perspective, if the actual benefits from the resizable BAR were minimal, no. Especially since it would have made their video cards run faster on old Intel CPUs which already include optimized versions of those instructions, compared to older AMD CPUs that do not. By withholding these details, they would give you one more reason to buy a Zen 3 CPU instead of staying on Intel, at least until the Intel BIOSes received the required updates.
Does it suck for us the consumers if that's what they actually did? Yes, it does. But is it actually a lie? No, it's just withholding the details. Basically, doing this gave them a temporary advantage over Intel and gave users more reasons to switch to AMD, at least initially. I don't like it, and I'll remember it, but it won't stop me from buying AMD components if they are worth it. It just proves you need to wait for the dust to settle for a bit and not buy something from the first day, or even worse, preorder, unless you really need it. That stands for both software and hardware. It's not worth the risk.
Anyway, these are just my assumptions. The only way to know for sure is to wait for NVidia to release their implementation. Then we'll see what happens when you try to use it with old Zen 2 CPUs. My guess will be that on Zen 2 the performance increase from the resizable BAR will be minimal, and any significant benefits will be from the use of those CPU instructions on the CPUs that have the proper optimizations.
One question, does anyone an AMD motherboard with a new BIOS, which has re-size BAR support, but a Zen 2 CPU installed? If so, can you check if the required options "Above 4G Decoding" and "Re-size BAR support" are available, and can be enabled? I'm not asking if they enable SAM or not for the video card, just if they are available and can be set.
Because it's not clear to me if the check for Zen 2 vs Zen 3 is done in the BIOS of the motherboard, disabling those two options in the BIOS completely, or the video card driver, which would disable just SAM, not the required features.
Depending on this, NVidia might or might not be able to enable something similar to SAM on Zen 2. It would also depend where the performance benefit comes mostly from, the optimized CPU instructions or the resizable BAR support, so I wouldn't bet much on NVidia being able to bring any performance improvements on Zen 2.
And if it's just the motherboard BIOS preventing the activation of those features, it would be very interesting what would happen if somebody could patch the BIOS to bypass this limitation.
AMD Smart Access Memory : How To Enable It?
If you have all of those supported components above, and updated your motherboard BIOS, you need to manually enable Smart Access Memory.
Now, the method will vary from motherboard to motherboard, and it probably won’t even be called Smart Access Memory.
Instead, look for variations of Above 4G Decoding, or Resizing BAR, or Resizable BAR."
www.techarp.com/computer/smart-access-memory-guide/
envytools.readthedocs.io/en/latest/hw/bus/bars.html
docs.nvidia.com/cuda/gpudirect-rdma/index.html
On my AsRock z170 I believe aperture size is BAR size adjust afrom 256MB to 4096GB adjustable amounts doubling it in step intervals upward from 256MB. MMIO 4GB enable/disable is 4G decoding which you enable above 2GB aperture size seems to follow Windows system memory PAE limits perfectly though doesn't appear there is a 3GB PAE switch or doesn't make any mention of it, but maybe it can work similarly technically not sure the PAE limit is to do with 32-bit and 64-bit with the PDEP support. In fact a Microsoft article on PAE mentions DEP the P portion represent paging and I think is just another difference in the name acronym of it tech industry is wishy washing on naming of different features that's nothing new. If Zen 1/Zen 2 lacks a 64-bit PDEP register on the CPU and/or on earlier chipsets than x570/B550 that most zen 1/zen 2 CPU's would be utilizing it could be limited to at best 2GB to 3GB aperture sizes is my speculation on the matter given how PAE works with system memory for 32-bit.