高级矢量扩展是x86指令集架构的一种"单指令、多数据"扩展,由Intel和AMD在现代CPU中实现。这些指令可显著增强并行处理工作负载,尤其是与512位寄存器和AVX-512指令集中的其他高级功能配合使用时。
.kO!8Q-;% Q"UWh~ FFmpeg团队最近强调了AVX-512指令如何在视频处理工作负载中显著提升性能。根据其中一位开发人员展示的幻灯片,利用这些SIMD指令的优化"手写汇编"可以将视频解码程序的速度提高3到94倍。
$6\-8zNk .yp"6S^b 虽然没有提供用于基准测试的CPU或系统的具体信息,但AVX-512技术于2016年首次出现在英特尔的Xeon Phi x200(Knights Landing)CPU系列中。AVX-512向量指令与高度优化的汇编代码的结合大幅提升了性能,尽管AVX指令从一开始就是为增强SIMD并行处理而设计的。
OnGtIY x|B$n} B FFmpeg是一款免费的开源软件包,它提供了一整套用于处理音频和视频流的库和工具,是名副其实的"多媒体瑞士军刀",被VLC等流行媒体播放器和YouTube等大型企业所采用。FFmpeg核心团队负责监督该项目,而志愿者社区则提供代码和补丁。
tEEeek(! |)'gQvDM 开发人员说,FFmpeg目前约有8%的代码依赖汇编语言,因此还有很大的改进空间。汇编语言是一种低级语言,如今很少有程序员会专门学习这种语言,尤其是因为软件行业现在大多优先使用高级、易学的语言,如Python。
5r1{l%? DoV<p?U 尽管如此,熟练的开发人员总是渴望在最新的硬件上最大限度地提高性能。FFmpeg包括针对x86和ARM处理器的自定义"手写"解码例程,尽管软件行业中有些人希望AVX-512能"痛苦地死去"。
-~z]ut<Z {4u8~whLp 最近,英特尔推出了AVX10,这是一种重新构想的ISA,在所有x86 CPU体系结构和内核类型中实现了AVX-512指令的标准化。然而,Intel在第12代酷睿处理器及其后续型号的固件级别上禁用了AVX-512支持,从而有效地将SIMD ISA从其消费类芯片中移除,这在业界掀起了轩然大波。
7bBOV(/s