Latest AVX-512 Optimization For FFmpeg Shows Wild Improvement On AMD Ryzen

https://www.phoronix.com/news/FFmpeg-AVX-512-uyvytoyuv422

91 points · 6 comments · view on lemmy.world

6 Comments

Redjard@lemmy.dbzer0.com · 17 pts · 1y (4 replies)

Affected CPUs: AVX-512 capable CPUs. Intel Xeon, Zen 4 AMD Ryzen and EPYC and up.
Affected function: UYVY to YUV422 format conversion (pixel-level color encoding).
Speedup: 18/10.98 = 1.64x (Since all AVX512 cpus should support and previously have used avx2(56)).

Apparently as part of an ongoing series of rewrites, they made a color encoding conversion function run 64% faster on server CPUs and somewhat recent AMD CPUs

sxan@midwest.social · 2 pts · 1y (1 reply)

Christ. I am so behind on CPU terminology.

I get tripped up by the families, and the modifiers, and AMD doesn't help with their naming. Ryzen 5 5600. R 7 5800. R 7 5800H. R 7 5800X. Ryzen 7 7800X3D. Ryzen 7 9800. I know these also fall into different families, which have different capabilities, but then there are things like AVX-512.

Does something like avx512 show up in the flags of /proc/cpuinfo? I've looked at cpu-x; it dumps info like AVX(1, 2) - how does that relate to AVX-512? The Family is also number and not the names AMD uses, like "Summit Ridge" or "Raven Ridge". Is there a tool to translate this information?

Redjard@lemmy.dbzer0.com · 5 pts · 1y

yes, zen4 is the ryzen 7xxx ans onwards. I think they will change the naming scheme again after the 9xxxs now though.

In my case my 5xxx cpu shows avx2 (256bit) in /proc/cpuinfo, I assume you will find avx512 there if you have it.

Also apparently there are mobile and server cpus with 7xxx names that are zen3. It is a mess certainly.

swab148@lemm.ee · 2 pts · 1y

Good news for my server!

Sorse@discuss.tchncs.de · 1 pts · 1y
[ removed ]
jupdown@lemmy.ca · 1 pts · 1y (1 reply)

I'd be interested to see the performance jump on a Zen 5 (or Xeon) CPU given that Zen 4 does that "double pump" approach to AVX512.

Kissaki@programming.dev · 1 pts · 1y

I wanted to read about double pump but the linked article looks like a general benchmark, without an explanation of that concept?