2025年2月18日,广泛使用的 FFmpeg 开源多媒体库合并了另一个 AVX-512 优化代码路径… 与纯 C 代码相比,AVX2 代码路径快 10.98 倍,而新的 AVX-512 代码路径的性能是普通 C 代码的 18 倍。
最新的 FFmpeg 代码是用于将 UYVY 转换为 YUV422 格式的 uyvytoyuv422 函数。通过手写程序集优化的 AVX-512 代码路径在这里大有裨益。AVX-512 即 Intel Xeon 处理器或 Zen 4 之后的所有 AMD Ryzen 和 EPYC 处理器。本补丁发布的基准测试使用 AMD Ryzen 9 7950X 进行。
该 AVX-512 代码路径的增益非常有利,其性能达到通用 C 路径的 18.02 倍,而 AVX2 唯一路径的性能达到 10.98 倍。
编写该补丁的 Shreesh Adiga 解释说:
“标量循环被屏蔽的 AVX512 指令取代。为了从 UYVY 中提取 Y,使用了 vperm2b,而不是各种 AND 和 packuswb。
在 AVX2 版本中,没有使用交错通道加载矢量,而是使用正常加载。在 packuswb 结束时,会对 U 和 V 进行额外的置换操作,以获得所需的布局”。
如果您的 CPU 支持 AVX-512,那么下一个 FFmpeg 版本将是一个不错的选择。这对 AMD Zen 4 来说尤其如此,而 AMD Zen 5 在其整个 CPU 产品堆栈中展现出的 AVX-512 性能更是如此。
本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/zixun/55996.html