AVX-512 似乎可以使普通乔受益。
现代高级编程语言和高级编译器极大地简化了软件开发并降低了其成本。但是,这种编程方式可能会隐藏现代硬件的性能,部分原因是应用程序编程接口 (API) 效率低下。显然,根据 FFmpeg 的说法,一个好的旧汇编代码路径可以将性能提高 3 到 94 倍,具体取决于工作负载。实现这种倍增性能的硬件未披露。
FFmpeg 是一个开源视频解码项目,由志愿者开发,他们为其代码库做出贡献、修复错误并添加新功能。该项目由一小群核心开发人员和维护者领导,他们监督其方向并确保贡献符合特定标准。他们协调项目的开发和发布周期,合并其他开发人员的贡献。这群开发人员尝试实现手写的 AVX512 汇编代码路径,这是以前很少做过的事情,至少在视频行业没有。
开发人员使用 AVX-512 指令集创建了一个优化的代码路径,以加速 FFmpeg 多媒体处理库中的特定功能。通过利用 AVX-512,他们能够实现显著的性能改进,与标准实施相比,性能提高了 3 倍到 94 倍。AVX-512 支持使用 512 位寄存器并行处理大量数据,一次操作可处理多达 16 个单精度 FLOPS 或 8 个双精度 FLOPS。这种优化通常非常适合计算密集型任务,但尤其适用于视频和图像处理。
基准测试结果表明,新的手写 AVX-512 代码路径的执行速度比其他实现要快得多,包括基线 C 代码和较低的 SIMD 指令集,如 AVX2 和 SSE3。在某些情况下,改进后的 AVX-512 代码路径实现了比基线快近 94 倍的加速,凸显了 AVX-512 手动优化的汇编代码的效率。
对于在支持 AVX-512 的高性能硬件上运行的用户来说,这项开发尤其有价值,使他们能够更高效地处理媒体内容。不过,存在一个问题:英特尔为其第 512 代、第 13 代和第 14 代酷睿处理器禁用了 AVX-14,使这些 CPU 的所有者没有它们。另一方面,AMD 的 Ryzen 9000 系列 CPU 具有完全支持的 AVX-512 FPU,因此这些处理器的所有者可以利用 FFmpeg 成就。
遗憾的是,由于 AVX-512 的复杂性和专业性,此类优化通常仅用于性能关键型应用程序,并且需要低级编程和处理器微架构方面的专业知识。
关注+星标“硅基LIFE”,每日获取关于人工智能、芯片领域最新动态。 加微信fusion9000,进“硅基LIFE”粉丝交流群交流并接收实时滚动推送的最新信息