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.

  • awayish@alien.topB
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    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.

  • pocketpc_@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    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).

    • jcm2606@alien.topB
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      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.