First of all, we must clarify that we are not going to talk about a complete GPU, but only about the shader units and within them the parts in charge of executing the shader programs, whether for computing or for graphics. Let us remember that these are a unit in themselves with the ability to execute programs like a CPU, but it does so in a totally different way, which makes us wonder if it would be possible to make use of an ISA like ARM to create not only this type of unit , but something more advanced and that would give a synergy of both concepts.
In search of the universal core like CPU and GPU
With NVIDIA’s interest in ARM, it is normal that we wonder if the green company has on its roadmap the creation of a new type of core, which can operate as both a CPU and a GPU. So we are not talking about a APU where CPU and GPU are separated into discrete units, but rather in universal nuclei that could do both.
This, which at the moment is science fiction on paper, has certain advantages, for example in a GPU we cannot make use of conventional programming languages and these, despite being very good at parallel calculation, are very bad at other things in which CPUs are much better, as is the case for jump prediction, which is key when it comes to traversing data structures for Ray Tracing.
However, the number of transistors of each shader unit, especially in the control units, since GPU planners are extremely simple compared to their CPU counterparts. The integration of a system for capturing and decoding instructions in a GPU like those found in a CPU would end by reduce the number of cores per area, causing gross power to be lost.
The only time it was tried was with the Intel Larrabee that was designed in the late 2000s, but it was not taken as a reference to the Intel Core of the time, but Intel used the cores of the first Intel Pentium as a base to create the shader units due to the complexity of the control unit of your CPUs.
ISA on a GPU doesn’t really matter at all
Both in the case of NVIDIA and AMD, the ISAs are not static and immutable as is the case with CPUs, for example from one generation to another we can find that there are instructions that have been eliminated from the list, they have been added of new and a long etcetera. Which surely leads you to the question: how do they then run the shader programs on the different generations of GPUs of each company?
In the specific case of NVIDIA they have developed an intermediate or virtual ISA called PTX, which is forward compatible with all the company’s graphics architectures. Think of PTX as something similar to the Microsoft .NET common language interface or the Java virtual machine. So it is the graphics card driver that is responsible for translating the PTX code to the ISA of each NVIDIA GPU, regardless of generation.
That is why using an ISA as ARM in creating the shader unit of a future NVIDIA GPU it would add nothing at all to the equation. So if NVIDIA ends up buying ARM, will it release a new type of core and redefine the concept of CPU and GPU ISA?