Unfortunately, due to the complexity and specialized nature of AVX-512, such optimizations are typically reserved for performance-critical applications and require expertise in low-level programming and processor microarchitecture.
I worked in the media broadcasting, we had an internal lib to scale/convert whatever format in real time, and it went from basic operation, to SSE3, to AVX512, to CUDA, and yes crafting some functions/loops wit assembly can give an enormous boost.
The only thing the article adds to the headline is that it’s not possible on new Intel chips. This article seems significantly better.
When this comes to the BSD’s, it will be interesting to see if there is a significant difference in multimedia. I bought Intel 11th gen over 10th for it’s AVX-512.
There is an issue, though: Intel disabled AVX-512 for its Core 12th, 13th, and 14th Generations of Core processors, leaving owners of these CPUs without them. On the other hand, AMD’s Ryzen 9000-series CPUs feature a fully-enabled AVX-512 FPU so the owners of these processors can take advantage of the FFmpeg achievement.
Intel can’t stop the L.
As for the claims and benchmarking, we need to see how much it actually improves. Because the 94x performance boost is compared to baseline when no AVX or SIMD is used (if I understand the blog post correctly). So I wonder how much the handwritten AVX-512 assembler code improves over an AVX-512 code written in C (or Rust maybe?). The exact hardware used to benchmark this is not disclosed either, unfortunately.
Someone else in the comments mentioned it is about 40% faster than the AVX-2 code and slightly more than twice as fast as the SSE3 code. That’s still a nice boost, but hopefully no one was relying on the radically slow unoptimized baseline.
Absolute madness. I cringe at the thought of making modern x86 asm code.
Great work!