One of the biggest problems in PC games is compiling shaders, in many games this is something really tedious that can drive even the most patient gamers to despair. However, this doesn’t happen on consoles and it’s all due to an issue that is none other than not using a Universal ISA on GPUs. The guilty ? NVIDIA and the monopoly they have through CUDA.
Compilation of shaders and the tower of babel problem
The big problem with PC graphics cards is that while an Intel Core and an AMD Ryzen speak the same language and understand the same binaries, an AMD graphics card and an NVIDIA graphics card don’t understand each other. GPU-executed shader programs that have been written in GLSL, HLSL or any other high-level shader language must be compiled for it to understand and this work must be done by the processor, either while screens are loading, or in the middle of the game. , causing frame drops, jerks and sometimes even crashes of the game itself.
It should be understood that each instruction in binary contains two parts, on the one hand the code of the instruction and on the other hand the data to manipulate. Each set of registers and instructions has its own language. In the same way that a signifier can mean nothing in one language but in another or have different meanings. That is to say that the problem is that if we speak of pure binaries, a shader compiled for a Radeon is not understood by a GeForce and vice versa.
Therefore, the ideal would be for the GPU to have a universal set of registers and instructions that would allow these to be compiled from the ground up already for all graphics cards. However, there is one of the two companies which has an iron domination on certain professional sectors which bring in a lot of money and an absolute monopoly on the market for high performance computing and artificial intelligence.
CUDA’s monopoly is what prevents Universal ISA on GPUs
NVIDIA has an absolute market share in the high performance computing markets, that is to say in particular the scientific and industrial world, which puts a lot of money in their coffers. It did this by locking down the tools of its CUDA libraries and using all its financial might for years to shut out OpenCL, a general-purpose computing API for GPUs that was ostracized and handed out on a silver platter, has declared the market to the green enterprise.
There are alternatives like Intel’s OneAPI, we’ll see how it ends, or AMD’s RocM, but none have the market share and power of NVIDIA. What does this have to do with the previous case? Well, if there was a universal ISA, then CUDA programs could be run on any graphics card, including those from AMD, and that’s something Jensen isn’t interested in at all Huang, because it would be a loss of market share and power for your company.
RISC-V would be a valid middle ground
The completely free and open RISC-V ISA can serve as a basis for creating a universal ISA GPU in which different companies could be added and create a completely open market where applications and algorithms do not depend on a single brand. However, this is only a possibility on paper, since NVIDIA has no interest in this happening in order to protect its business.