This improves your processor the performance of your graphics card

The components of a PC are more interconnected with each other every day, which is undoubtedly an advantage, since they are not isolated and latency is lost. But when we talk about CPU and GPU, a doubt always arises when looking at gaming performance. Can a processor use GPU VRAM for its own benefit? Do you gain performance in such a case or lose it? Let’s see it.

Well, it’s really a highly debated topic, because there are many false myths about what a processor can or cannot do and how it can do it with the VRAM of the graphics card. We are going to try to clear the myths once and for all so that we understand the limits of both.

improves your processor the performance of your graphics card

The processor and the VRAM, love/hate relationship?

The first thing we must be clear about are terms such as access and training. The CPU has very limited access to the VRAM, simply to assign lots of memory and locations as such, but within this concept of access it is necessary to qualify a bit.

The CPU and its PCIe controller as well as the VRAM are not directly connected as is the case with the GPU. You need to access the PCIe bus through the GPU driver, BIOS/Firmware, which in turn handles the graphics API (DX12 in this case) and from there you get limited access to the VRAM, as we say, through block allocation. The problem comes through the allocation of buffers for the vertices, or VB, since these have to be decided by the graphical API where the information has to go and how it is accessed.

Fetching-VB-from-DX12

To do this, vertex or VAF attributes are used, which, as a general rule, are not implemented well in most games, since the CPU works the addresses and information for the GPU, passes through the caches and from there they go to the System RAM , which sends the indications for the loading of DRAWs on the PCIe bus from the DDR and curiously from there they go to the GPU cache .

This saves a previous step, but as we can see we skipped the VRAM completely, so the programmers and Microsoft, along with NVIDIA and AMD saw that there was a much more optimal way to link the VRAM and the CPU.

PCI-SIG ReBar and VRAM

As we surely know, access to the VRAM was done until the implementation of the two companies in blocks of 256 MB segmented , but these had to go through the structure that we have talked about before. The funny thing is that it wasn’t necessary because PCI-SIG already had ReBar in its ranks since PCIe 2.0 itself, so they were both behind on this limitation.

Preloading-VB-to-VRAM Resizable Bar and Smart Access Memory removed the problem by adding a job to copy the information that is assigned to a subcore , that is, to a processor thread (as a general rule, it is parallelizable, but it has an impact on its performance).

Therefore, the path now went two ways. In one the CPU writes the information in the RAM after being worked by the cache, while on the other hand there is a copy that is sent through the PCIe to the VRAM and then from there it goes to the cache to end up in the VAF as such.

What do we get with it? That the CPU directly writes a copy of the information in the VRAM and that it be worked by the graphics card cache, so that when it is necessary and deemed appropriate through the API , the information is accessed from the RAM , which already has it assigned before the call, the textures are downloaded to the VRAM (RAMDisk) and from there they are transferred to the GPU after the previous work of its cache, which reduces the total access time and increases the performance as a general rule.

Preloading-VRAM-CPUpng

Ultimately, the CPU can access the VRAM, yes, but only to send it a copy of the working information so that this saves rendering and bus offload time, as well as pointless back and forth between CPU and GPU, for Of course all thanks to GART and DMA drives.

What also has to be made clear is that the CPU does not “see” the VRAM as a memory unit as such. What you see is a device (GPU) connected to the PCIe bus and assigned a type of memory, as simple as that. It is the API and the driver that are in charge (after loading the firmware) of working in one direction or another, because as we say, the developer also has to have an engine that can carry out these loads and copies. Because of this, the CPU and VRAM will work one way or another, with one method or another.