Could you expand on the 24x24 unrolling with AVX? How big of a benefit did you obtain, compared to say using a library such as Armadillo, Fastor, Eigen, etc?
Eigen is designed in the assumption these vectors/matrices are large. 24 is not large, fits in 3 vector registers out of the 16 available. Eliminating data access latency of the accumulators is what caused the speedup.
Interesting
I’ve wrote an introduction article some time ago: http://const.me/articles/simd/simd.pdf
Here’s more practical one: https://stackoverflow.blog/2020/07/08/improving-performance-...