Question Are GPU architectures different from CPU architectures ?

FlameTail

Golden Member
Dec 15, 2021
1,888
984
106
For a while I thought that Computer GPUs were based on x86 just like CPUs. I used to think that architectural names like Ampere, RDNA, Turing were just marketing moniker like Intel's Lakes ( Alder Lake , Comet Lake, etc...).

I also used to think that smartphone GPUs like Mali or Adreno were based on the ARM ISA.

However, that does not appear to be true as I have grown wiser.

It seems that CPUs and GPUs have separate ISAs.

Can someone confirm this ?
 

NTMBK

Lifer
Nov 14, 2011
10,208
4,940
136
For a while I thought that Computer GPUs were based on x86 just like CPUs. I used to think that architectural names like Ampere, RDNA, Turing were just marketing moniker like Intel's Lakes ( Alder Lake , Comet Lake, etc...).

I also used to think that smartphone GPUs like Mali or Adreno were based on the ARM ISA.

However, that does not appear to be true as I have grown wiser.

It seems that CPUs and GPUs have separate ISAs.

Can someone confirm this ?

Generally speaking yes, they are based on different ISAs. And the ISA can change with generations- for instance the ISA for Kepler GPUs was different from the one for Maxwell GPUs. It is the job of the graphics driver to compile shaders into the specific instruction set for a GPU at runtime.

Intel did try to make an x86 GPU called Larrabee, but they had to give up on it- they never launched it, presumably because it wasn't competitive. It did get turned into Xeon Phi, but that also wasn't very competitive with Nvidia's GPUs. Intel are now making a non-x86 GPU.
 

FlameTail

Golden Member
Dec 15, 2021
1,888
984
106
Doesn't haveing so many different GPU architectures - Ampere, RDNA, Adreno, Mali etc... - cause compatibility issues ? Like the compatibility problems between x86 and ARM ?
 

Hitman928

Diamond Member
Apr 15, 2012
5,182
7,633
136
Doesn't haveing so many different GPU architectures - Ampere, RDNA, Adreno, Mali etc... - cause compatibility issues ? Like the compatibility problems between x86 and ARM ?

That's why there are standard APIs (DirectX, Vulkan) that GPUs and games have to work with in order to have wide compatibility. If you made the best GPU in existence but it wasn't compatible with any modern APIs, no one would care.
 
  • Like
Reactions: NTMBK and Mopetar

gdansk

Golden Member
Feb 8, 2011
1,988
2,358
136
Doesn't haveing so many different GPU architectures - Ampere, RDNA, Adreno, Mali etc... - cause compatibility issues ? Like the compatibility problems between x86 and ARM ?
Unlike CPUs almost no one targets the actual ISA of GPUs. The drivers for GPUs include multiple different compilers which transform immediate representations (Metal AIR, Vulkan SPIRV, Direct3D DXIL, etc) into architecture specific code.
 
  • Like
Reactions: NTMBK

Borealis7

Platinum Member
Oct 19, 2006
2,914
205
106
A CPU core is a general purpose computing unit which can perform a wide range of operations while a GPU core is a more specialized core for performing vector operations very quickly. Naturally, the ISA i.e. the "Instruction Set" will be different, the key components of the core itself differ (even between architectures) and the arrangement of cores within a "chip" are vastly different. A CPU has like 8-10 "cores" these days? A GPU has thousands of "smaller cores" working in parallel.

you can run any calculation done in a GPU on a CPU, but it will most probably take a lot longer as the CPU is not specifically optimized for these kinds of calculations. the opposite may also be true - you could theoretically simulate a CPU on a GPU, just as you can simulate the Playstation ISA on a CPU+GPU with emulators, and also ARM emulation on x86.
 

NTMBK

Lifer
Nov 14, 2011
10,208
4,940
136
.A CPU has like 8-10 "cores" these days? A GPU has thousands of "smaller cores" working in parallel.

That's a bit of misinformation spread by Nvidia. What they refer to as a "core" is closer to what an x86 core calls a SIMD lane. So by Nvidia logic an Alder Lake P-core would actually be 16 "cores", because with AVX-512 it can execute 16 floating point operations simultaneously. (Or maybe 32 cores, because it has multiple ports that can execute vector instructions simultaneously!) The architectures certainly have big differences, but that one in particularly isn't as big a gap as Nvidia makes out.

In fact the Larrabee GPU was just lots of small CPUs bolted on to big AVX-512 units, plus some specialised hardware like texture samplers, and the addition of 4-way SMT. The SMT was important to improve utilisation. A GPU needs to be more focused on total throughput and less worried about latency, which is why they tend to use lots of thread blocks. While one set of threads is stalled on a texture access, another group can be executing.