▲ | pjmlp a day ago | |||||||||||||||||||||||||
Now make that multi-threaded code exhaust a 32 core desktop system, all the time, not only at peak execution. As brownie points, keep the GPU busy as well, beyond twirling its fingers while keeping the GUI desktop going. Even more points if the CPU happens to have a NPU or integrated FPGA, and you manage to also keep them going alongside those 32 cores, and GPU. | ||||||||||||||||||||||||||
▲ | timschmidt a day ago | parent [-] | |||||||||||||||||||||||||
> Now make that multi-threaded code exhaust a 32 core desktop system Switching an iter to par_iter does this. So long as there are enough iterations to work through, it'll exhaust 1024 cores or more. > all the time, not only at peak execution. What are you doing that keeps a desktop or phone at 100% utilization? That kind of workload exists in datacenters, but end user devices are inherently bursty. Idle when not in use, race to idle while in use. > As brownie points, keep the GPU busy as well... Even more points if the CPU happens to have a NPU or integrated FPGA In a recent project I serve a WASM binary from an ESP32 via Wifi / HTTP, which makes use of the GPU via WebGL to draw the GUI, perform CSG, calculate toolpaths, and drip feed motion control commands back to the ESP. This took about 12k lines of Rust including the multithreaded CAD library I wrote for the project, only a couple hundred lines of which are gated behind the "parallel" feature flag. It was way less work than the inferior C++ version I wrote as part of the RepRap project 20 years ago. Hence my stance that software has become increasingly sophisticated. https://github.com/timschmidt/alumina-firmware https://github.com/timschmidt/alumina-ui https://github.com/timschmidt/csgrs What's your point? | ||||||||||||||||||||||||||
|