News for hackers. Stuff that matters.
Re:Measuring energy usage: regular code vs. SIMD code by adgjlsfhk1 on Monday February 19, 2024 @06:26PM (#39436088)
That's definitely wrong (unless you use an incredibly expansive definition of "frontend"). The simplest way to prove that it's wrong is that heavily vectorized workloads can easily cause a 30% increase in power consumption over scalar workloads even though the instruction density is similar.
Re:Measuring energy usage: regular code vs. SIMD code by totallyabstract on Monday February 19, 2024 @06:40PM (#39436202)
Wouldn't that support the idea that most energy consumption is in decoding? If you're getting 2x, 4x, 8x ect as much value computation per instruction and yet only a 30% increase in power then clearly most the power is not used by computing the values.
Re:Measuring energy usage: regular code vs. SIMD code by adgjlsfhk1 on Monday February 19, 2024 @07:24PM (#39436551)
no, because there's a lot the CPU does that is neither decoding nor execution. There's also caches, register renaming, branch prediction, inter core communication for atomics, and a dozen other things.
Re:Measuring energy usage: regular code vs. SIMD code by totallyabstract on Monday February 19, 2024 @09:57PM (#39437537)
Sorry poor terminology use on my part. I mean more broadly that most energy is used on frontend and middle end, rather than backend and that this is what vectorisation improves in regards to energy consumption. Register renaming and branch prediction energy consumption should be improved in the same factor as decoding. Caching probably less so (depending if we are talking instruction, data or combined).

I don’t think inter-core communication is too relevant when comparing vectored and non-vectored on a single core, but definitely would be when batching across multiple cores.