Afaik, gpu cores a very stripped down cpu cores that do basic math, but what sort of math can cpus do that gpus can’t
I’m talking, cpu core vs Tensor/Cuda cores.
to truly understand the difference u need to get into the weeds of low level physical implementation of logic instruction sets. the “bloat” of a cpu mostly has to do with striving to speed up the processing of sequential, order-sensitive instructions. unlike gpu which can be massively parallel.
In terms of pure math, CPU and GPU cores are actually pretty equal. However, GPU cores lack a TON of other essential features supported by a modern CPU. For example…
Features needed for secure multitasking:
- Protection rings
- Virtual memory/paging
- Virtualization
Features needed to manage the system’s hardware:
- Programmable interrupts
- Memory-mapped I/O
- System Management Mode
Features needed for high performance in workloads that aren’t massively parallel:
- Simultaneous multithreading
- Branch prediction
- Out-of-order execution/register renaming
GPU cores are pure math machines with minimal capabilities outside of that. CPU cores are multipurpose monstrosities that spend surprisingly little of their time adding numbers together (and most of the addition that does happen is just calculating memory addresses).
Simultaneous multithreading
For what it’s worth, GPUs are kind of getting SMT now with the advent of dedicated asynchronous queues for compute and memory transfers. Modern GPUs are able to draw primitives, run compute shaders and perform DMA transfers from CPU to GPU at the same time, with the first two even using the same hardware. Of course you need to be careful with where you do these as there can be hardware resource conflicts, but you can do something kind of like SMT to make use of otherwise idle hardware while the GPU is doing other work.