UltimaTexCS Posted April 18, 2021 Posted April 18, 2021 A GPU is actually a very complex type of processor, a heterogeneous system made up of several different types of units that have to be coordinated to give a coherent result. In this article we are going to describe the command processors, the part of the GPU in charge of this task. In every GPU there is always a central part that regardless of the architecture and the brand that we talk about is common in all of them, it is the command processors, the unit in charge of automatically managing the operation of the dozens of different units that exist. on a GPU. What is a command processor? NVIDIA GPU The command processor of a GPU is a microcontroller in charge of reading the screen list generated by the CPU, to do so it makes the DMA unit serve in the GPU itself to access not the VRAM but the main RAM of the system where this is stored. command list. After finding the screen list in RAM, it copies it to the internal memory of the microcontroller. The list of commands includes all the instructions that the different units of a GPU have to execute to render an image, either in 2D or 3D, but since the arrival of DirectX 11 to the PC, the so-called Compute Shaders have arrived, these are shader programs that are not associated with the graphical pipeline and that allow the use of the GPU to solve algorithms in which the CPU is less efficient. Today, a GPU is not only used to render impressive graphics for video games, it has many other uses and is used in several different markets, but the evolution of graphics cards towards these markets has gone in parallel with the evolution of the command processor. and its possibilities. What does asynchronous computing mean? ASYNC Compute First of all, it must be clarified that Compute Shaders are also used in the case of the graphic pipeline, especially in post-processing and pre-processing of the image. For example they are used to calculate lighting in delayed rendering. In those cases, because the execution of the Compute Shaders depends on the execution of the rest of the graphical pipeline, we say that it is synchronized, but there are tasks that benefit from the use of the GPU and that are not part of the rendering of the scene, therefore they work asynchronously. ASYNC Compute Command Processors To be able to visualize it better, we only need to see two different situations: In the first one, we are making bread but we find that we lack flour and therefore we ask someone not to go looking for it, this means that we cannot do anything while we wait for the flour to be brought to us. The second situation comes from the first, because we cannot make bread so we decide to wash the dishes. Something that we can do at any time and that has nothing to do with it. The designers of the different GPUs realized that in all the GPUs there were bubbles in the execution where some parts of the GPU of these did not do anything in small periods of time. That is why a few years ago they decided to implement asynchronous computing and collaborate in the development of APIs that make use of these, such as DirectX 12 and Vulkan. What are command lists? Processors Commands Types Today, the CPU itself is in charge of making the different command lists, either through a single core or multiple cores to create them in parallel. In video games, a core is usually assigned to create the graphics list, which is much more complex than the others and usually originates from a single memory ring. The lists of commands for computing are much simpler, they seek that the shader units solve a specific problem and provide the solution. In the case of the lists of commands for computing, these are usually made up of several different lists, which can be resolved simultaneously with each other and with respect to the screen list. The reason for this is that they are asynchronous and therefore do not depend on each other to function, this makes them totally independent and allows to take advantage of parts of the GPU that would otherwise be wasted due to inactivity. The other type of commands are those related to accessing the RAM or VRAM of the system, these commands are executed in both computing and graphics. In the case of graphics, memory operations are done solely and exclusively in VRAM, while in computing mode the data can be imported or exported both in RAM and in VRAM, since in some cases the GPU responds to a computation request from the CPU. Graphics APIs and command processors DX11 vs DX12
Recommended Posts