4 ms·
> all the extra speed is obtained by consuming proportionally more CPU resources (extra threads and SIMD) If you know you have other threads that need to do wo
by oconnor663 4y ago
> all the extra speed is obtained by consuming proportionally more CPU resources (extra threads and SIMD)
If you know you have other threads that need to do work, then yes, multithreading BLAKE3 would just pointlessly compete with those other threads. But I don't think the same is true of SIMD. If your process/thread isn't using vector registers, it's not like some other thread can borrow them. They just sit idle. So if you can make use of them to speed up your own process, there's very little downside. AVX-512 downclocking is the most notable exception, and you'd need to benchmark your application to see whether / how much that hurts you. But I think in most other cases, any power draw penalty you pay for using SIMD is swamped by the race-to-idle upside. (I don't have much experience measuring power, though, and I'd be happy to get corrected by someone who knows more.)