性能提升显著
通过多重同构变换将非同构指令序列转化为同构形式,显著扩展SLP矢量化方法的适用范围并提升性能。
Feng, Jingge · 贺也平 · 陶秋铭 · 马恒太
Jisuanji Yanjiu yu Fazhan/Computer Research and Development 2023
通过基于条件判断和收益评估的多变换方法选择与实施,把非同构指令序列转成同构形式,使原本无法矢量化的代码也能利用 SLP。
在 SPEC CPU 2017 等基准测试上,与现有方法相比,内核函数性能提升 21.8%,整体测试性能提升 4.1%,说明该方法在实际应用中能带来可观的加速。
已在 LLVM 中实现,编译器开发者可以直接使用该优化,无需对源代码进行修改。