DirectX 12 Update Allows CPU and GPU to Access VRAM Simultaneously

Smart Access Memory (SAM)
(Image credit: AMD)

Microsoft has announced a new DirectX12 GPU optimization feature in conjunction with Resizable-BAR, called GPU Upload Heaps (opens in new tab), that allows the CPU to have direct, simultaneous access to GPU memory. This can increase performance in DX12 titles and decrease system RAM utilization since the feature circumvents the need to copy data from the CPU to the GPU. The new feature is available now in the Agility SDK.

We don't know the actual implications of this feature, but the performance advantages could be significant. Graphics card memory sizes and video game VRAM consumption are getting larger and larger every year. As a result, the CPU needs to move more and more data between itself and the GPU.

With this feature, a game's RAM and CPU utilization could decrease noticeably due to a reduction in data transfers alone. This is because the CPU no longer needs to keep copies of data on both system RAM and GPU VRAM to interact with it. Another bonus is that GPU video memory is very fast these days, so there should be no latency penalties for leaving data on the GPU alone. In fact, there will probably be a latency improvement with CPU access times on high-end GPUs with high-speed video memory.

For gamers, the only requirement you'll need is Resizable-Bar or Smart Access Memory support on both your CPU and GPU. Resizable-bar is the foundation for GPU Upload Heaps since the feature enables Windows to manage GPU VRAM directly. 

For developers, the feature is already supported by Nvidia, Intel, and AMD drivers. For example, it's already included in Nvidia's latest Game Ready and Studio Drivers (version 531.41 or newer) and Intel A-series/Xe GPUs (with driver 31.0.101.4255 or newer). For AMD GPUs, developers must consult their AMD alliance manager to get a supported driver.

The feature just came out from Microsoft, so don't expect it to be implemented in games anytime soon. Instead, developers will need time to see whether or not it will provide a significant enough performance advantage to make it worthwhile.

Aaron Klotz
Freelance News Writer

Aaron Klotz is a freelance writer for Tom’s Hardware US, covering news topics related to computer hardware such as CPUs, and graphics cards.

  • Alvar "Miles" Udell
    And given both the prices of new GPUs and the required GPUs to enable use of ReBAR/SAM, there's no real need for a rush to implement it anyway.
    Reply
  • jkflipflop98
    Thanks, Microsoft. Keep up the good work.
    Reply
  • RichardtST
    But can I use the ridiculous amount of VRAM as regular RAM when I'm not playing games? Faster is faster.... Why should only games get to benefit?
    Reply
  • hotaru251
    now if only mr leather jacket man would give resizeable bar to the 10x0 series...
    Reply
  • waltc3
    Generally, the way this works in games is that the GPU loads texture data to be stored in Vram in the background and in advance of when it will be needed while a game is being played/run. This is a normal part of the game-engine programmed mechanics. I don't see this feature making a lot of difference in game play, accordingly. The primary reason that GPUs sport as much Vram as they do is because it is so much faster to texture from than system ram (which is much slower)--and of course much faster than any disks in the system. All this is done transparently so that the game player doesn't notice when playing. Some game engines are better than others at it, but that falls to differences in the quality of the game programming as well as differences in the quality of the various game engines used, textures, resolutions, etc.
    Reply
  • waltc3
    RichardtST said:
    But can I use the ridiculous amount of VRAM as regular RAM when I'm not playing games? Faster is faster.... Why should only games get to benefit?

    Yes, provided the non-gaming application supports D3d12 and then directly supports this particular D3d12 feature, and that will depend on how well the drivers support it in practice.
    Reply
  • Elusive Ruse
    RichardtST said:
    But can I use the ridiculous amount of VRAM as regular RAM when I'm not playing games? Faster is faster.... Why should only games get to benefit?
    That's simply not true, my Davinci Resolve loves itself some phat VRAM.
    Reply
  • DerKeyser
    Fates_Demise said:
    Except they are producing something, they produced a service for bitcoin transaction data. The exact same thing that your bank does every time money is moved.
    The only difference is bitcoin is a singular worldwide currency while your others have transaction fees to interchange and move.

    Ehhm, I don’t know where the writer of this article had his lunch, but it must have been bad.
    The GPU VRAM may be very very fast, but access of memory across the PCIe bus - even if PCIe 5.0 - is DEFINITIVELY not. Much much worse latency than DRAM on the CPU’s own memory controller.
    So treat this article as clickbait in terms of using VRAM as faster ram than DRAM from your CPU.
    Reply
  • ROB_DF_MX
    That is a great feature to have and good news in general for the modern PC performance but only useful if your motherboard vendor cares about implementing the "Resizable-Bar" feature in BIOS.
    In my poor case, GIGABYTE never care to update the BIOS on my "Gigabyte X399 AORUS Gaming 7 Motherboard", ASUS also never did that on the same X399 platform but MSI and ASROCK did it well.
    So, go figure my system has a 2nd generation AMD Threadripper 2970WX, Gigabyte X399 AORUS Gaming 7 Motherboard, 256GB of RAM, PNY GeForce RTX 4080 and NO RESIZABLE BAR !!!

    There are no possible way to request this to the motherboard vendors ?
    Many of them are so LAZY and once they sold the mobo they just do not care !!!
    Reply
  • Amdlova
    ROB_DF_MX said:
    That is a great feature to have and good news in general for the modern PC performance but only useful if your motherboard vendor cares about implementing the "Resizable-Bar" feature in BIOS.
    In my poor case, GIGABYTE never care to update the BIOS on my "Gigabyte X399 AORUS Gaming 7 Motherboard", ASUS also never did that on the same X399 platform but MSI and ASROCK did it well.
    So, go figure my system has a 2nd generation AMD Threadripper 2970WX, Gigabyte X399 AORUS Gaming 7 Motherboard, 256GB of RAM, PNY GeForce RTX 4080 and NO RESIZABLE BAR !!!

    There are no possible way to request this to the motherboard vendors ?
    Many of them are so LAZY and once they sold the mobo they just do not care !!!

    My x99 asus has moded bios with rebar :)
    Reply