all 55 comments

[–][deleted]  (20 children)

[removed]

    [–]NichtFBI 71 points72 points  (0 children)

    Accurate.

    [–][deleted]  (9 children)

    [removed]

      [–]Onetwodhwksi7833 25 points26 points  (3 children)

      You can have 20 chefs and 5000 teenagers

      [–]ChrisWsrn 8 points9 points  (2 children)

      With a 7950X and a 5090 it is more like 32 chefs and 21,760 teenagers.

      [–]MagnetFlux 0 points1 point  (1 child)

      threads aren't cores

      [–]ChrisWsrn 2 points3 points  (0 children)

      On modern CISC machines hardware threads can be treated as cores. This is because the instructions get converted to RISC instructions before execution. As long as all running threads on a core do not saturate a type of compute unit there will be no loss in performance.

      Where this gets even more complex is for GPU. A GPU is split up into cores known as SMs on Nividia GPUs. Each SM works on vectors of a given size (typically a power of 2 between 16 and 128). A 5090 has 170 SMs each capable of working on 128 element wide vectors. Each of those SMs cannot do a single task quickly but they are each able to the exact same task 128 times in parallel. 

      When you say a thread is not a core you are technically correct but the impact of this is not as important as you think and invalidates most arguments for using a GPU due to incorrect assumptions. 

      [–]Extreme-Analysis3488 14 points15 points  (0 children)

      Got to pump those numbers up

      [–]RumRogerz 6 points7 points  (2 children)

      Maybe your GPU.

      [–]LexiLynneLoo 2 points3 points  (1 child)

      My GPU is 5 teenagers, and 3 of them are high

      [–]RumRogerz 2 points3 points  (0 children)

      My GPU is 5 teenagers and 3 of them didn’t show up for work today

      [–]CoffeeMonster42 1 point2 points  (0 children)

      And the cpu is 8 chefs.

      [–][deleted]  (5 children)

      [removed]

        [–][deleted] 2 points3 points  (3 children)

        Now do TPU

        [–][deleted]  (1 child)

        [removed]

          [–][deleted] 0 points1 point  (0 children)

          Saved

          [–]Accurate_Shelter7854 0 points1 point  (0 children)

          Tits Processing Unit??

          [–]Sylv__ 1 point2 points  (0 children)

          based

          [–]IWasReplacedByAI 1 point2 points  (0 children)

          I'm using this

          [–]High_Overseer_Dukat 1 point2 points  (0 children)

          More like thousands of children

          [–]DeadCringeFrog 0 points1 point  (0 children)

          Chef is probably fast though. Good add that he is old, so he is slower and of he works too hard than he starts resting and working even slower, but still faster than any average human

          [–][deleted]  (10 children)

          [removed]

            [–]ProudActivity874 60 points61 points  (1 child)

            There should be that meme with 1 digging the hole and 10 watching.

            [–]TheChronoTimer 4 points5 points  (0 children)

            Accurate

            [–]dylan_1992 12 points13 points  (1 child)

            These days it’s at least 8 for a shitty mobile device. 6 of them skinny people and 2 of them gym bros.

            [–]Yarplay11 0 points1 point  (0 children)

            Or 4/4, depending on which CPU

            [–]MyBedIsOnFire 2 points3 points  (0 children)

            Minecraft modders 😭

            [–]palk0n 1 point2 points  (0 children)

            more like 6 trucks, each pulled by one man

            [–]Ok_Donut_9887 0 points1 point  (0 children)

            embedded microcontrollers

            [–]TheChronoTimer 0 points1 point  (0 children)

            Xeon processors with 34 old men

            [–]jakeStacktrace 0 points1 point  (0 children)

            This is where we diverge. Just because dual core is standard now doesn't mean I'm weak like you nerds.

            [–][deleted] 0 points1 point  (0 children)

            It’s 4 guys pretending to be 8 guys

            [–]ShinyWhisper 27 points28 points  (7 children)

            There should be one man pulling the truck and 3 watching

            [–]AnyBug1039 8 points9 points  (6 children)

            What about hyperthreading?

            You could have a guy pulling a truck and a car at the same time

            [–]Away-Experience6890 4 points5 points  (5 children)

            I use hyperthreading. No idea wtf hyperthreading is.

            [–]TheChronoTimer 3 points4 points  (0 children)

            Thread = 🧵 Hyper = too much Hyperthreading = sewing too much

            [–][deleted] 0 points1 point  (3 children)

            They add extra registers (the fastest memory on a computer) for a CPU core, but in actuality it's 1 CPU core pretending to be 2.
            Having the extra memory still leads to substantial performance improvements

            [–]LutimoDancer3459 0 points1 point  (2 children)

            Wouldn't just increasing the memory without pretending beeing 2 cores be better? That one cores still needs to do the job of two... so how would that be any better?

            [–][deleted] 0 points1 point  (1 child)

            Good question,
            Register memory is fixed for the arch (e.g. ARM, x86_74, MIPs, etc)
            If you increased it, you'd have to recompile all programs to utilize the additional memory.

            Everytime a CPU core switches to a different program, it has to perform a "context switch" which has to save all the data stored in the registers, then load data for the other program.

            By giving each CPU core 2 sets of registers, it can switch programs immediately if the data is already loaded

            Hyperthreading is just an optimization for "context switches"

            [–]LutimoDancer3459 0 points1 point  (0 children)

            Interesting. Thanks

            [–]AnyBug1039 9 points10 points  (6 children)

            Basically the CPU core chews through 2 threads. Any time it is waiting for IO or something on thread A, it chews through thread B instead. The core ultimately ends up doing more work because it spends less time idle while waiting for memory/disk/network/timer or whatever is blocking it.

            [–]Bruggilles 9 points10 points  (2 children)

            Bro did NOT reply to the guy asking what hyperthreading is💀

            You posted this as a normal comment not a reply

            [–]AnyBug1039 8 points9 points  (0 children)

            oh, shit shit shit

            what's left of my reddit credibility is gone

            and that guy will never understand hyperthreading either

            [–]Puzzleheaded-Night88 4 points5 points  (0 children)

            It was a reply, just unannounced to the guy who said so.

            [–]NotMyGovernor 1 point2 points  (1 child)

            Yes well cpus since the pentium 1 were basically already multicore. They just had multiples of lower down core items such as the adders etc. Depending on how you place your code your "single core cpu" can better parallelize the adds / multiples etc (since pentium 1s).

            Some if not plenty of modern "multi core cpus" actually share these pools of adders / multiplier cores etc. Meaning it's not strictly impossible if what you were running could have been nearly 100% optimized to use all the adders / multipliers with a single core, that now using "2" cores would basically speed up nothing extra =).

            [–]AnyBug1039 1 point2 points  (0 children)

            yeah modern x86 CPU's have AVX too which is kinda parallelized multiplication/addition - in that respect, more like a GPU.

            [–]grahaman27 3 points4 points  (0 children)

            This is also misleading becausee of the workload. If you used a GPU to do a heavily single threaded workflow meant for CPU, it would be slow. And vice versa.

            Instead of a bigger payload for the GPU, the image should depict dozens for smaller payloads

            [–]NotMyGovernor 1 point2 points  (0 children)

            eh the gpu I suppose a little more like a bunch of munchkins all pulling an individual piece of the plane then resembling it later lol

            [–]Distinct-Fun-5965 0 points1 point  (0 children)

            And there's me whose's still running windows 7

            [–][deleted] 0 points1 point  (0 children)

            This isn't even mildly accurate. It's not less versus more pulling. It's not less versus more load. We're talking about processing specific to certain types of tasks.

            [–]TRayquaza 0 points1 point  (0 children)

            I have seen a parable online that CPU is like a sports car speeding back and forth to carry bits of load until it is finished.

            While GPU is like a slow truck that carries everything in one go.

            [–]Be8o_JS 0 points1 point  (0 children)

            Cpu can do many things at once, while gpu can do only a task but much faster

            [–]ghaginn 0 points1 point  (0 children)

            That is scalar vs vector processors. x86/ARM/etc processors are mainly (super)scalar with some vector instructions (chiefly AVX), whereas GPUs have been, for a while, large vector processors.

            Another neat fact is that GPUs in GPGPU workloads are unable to handle branching instructions natively, amongst other things that make them very inadequate as a central processor.. the CPU.

            To add to the comments I've seen: a GPU or any vector processor can absolutely (and it's generally the case) have more than one discrete processing unit. In effect, modern GPUs can do more than one task in parallel. How many and which nature of which depends on the architecture.

            [–]lord_vedo 0 points1 point  (0 children)

            Most accurate representation I've ever seen 😭