Page 223 - 《软件学报》2026年第6期
P. 223
2542 软件学报 2026 年第 37 卷第 6 期
少, 各测试用例的归一化最优执行时间均保持在较为稳定的水平, 并且大多数测试用例经过迭代后均获得了性能
提升. 与仅使用-O3 优化相比, 加速比最高达到了 1.25 (在使用 LLVM 编译器处理 CG 测试用例的第 3 轮迭代中),
这进一步证明了基于 SHAP 的选项分析及筛选算法的稳定性和有效性. 同时, 不同编译器的调优效果表现出较为
明显的差异: GCC 编译器在不同迭代间显示出较大的性能波动, 而 LLVM 编译器则表现得更加稳定. 这种现象可
能是由于编译器的设计理念和技术实现不同所导致的. 具体来说, GCC 可能采用了更多依赖于特定上下文的优化
技术, 导致在不同迭代中的性能结果差异较大; 而 LLVM 可能使用了更为独立且通用的优化方法, 因此在迭代间
维持了更高的性能一致性. 特别地, CG 测试用例使用 LLVM 编译器的调优效果 (20.63%) 显著优于 GCC 编译器
(8.05%). 通过分析选项筛选过程能够发现, -ffast-math 选项在 LLVM 编译器的多轮迭代中始终保持较高的 Shapley
值. 对于 swLLVM 编译器, -ffast-math 是一个需要显式启用的集合选项, 其通过放宽严格的 IEEE-754 浮点运算规
则限制, 允许编译器进行一系列激进的优化, 包括循环展开、指令重排、乘加融合等. 而在当前的 swGCC 编译器
实现中, -O3 基准优化级别已启用了部分浮点运算优化, 因此受-ffast-math 选项的影响较小.
250 120
Iter0 Iter1 Iter2 Iter3 Iter0 Iter1 Iter2 Iter3
200 100
80
选项数量 150 选项数量 60
100
50 40
20
0 0
BT CG EP FT IS LU MG SP BT CG EP FT IS LU MG SP
(a) GCC 编译选项 (b) LLVM 编译选项
图 14 NPB 测试集在调优过程的不同迭代阶段应用的编译选项数量
表 6 NPB 测试集调优过程中不同迭代阶段的最优归一化执行时间 (以-O3 为基准)
测试 GCC归一化最优执行时间 LLVM归一化最优执行时间
用例 Iter0 Iter1 Iter2 Iter3 Iter0 Iter1 Iter2 Iter3
BT 0.913 6 0.927 6 0.905 8 0.902 4 0.963 2 0.960 6 0.959 2 0.959 9
CG 0.919 5 0.943 8 0.968 5 0.937 8 0.794 6 0.794 1 0.793 7 0.793 8
EP 0.956 9 0.959 9 0.960 2 0.959 5 0.985 6 0.985 6 0.985 2 0.985 2
FT 0.921 6 0.988 3 0.929 9 0.902 2 0.906 3 0.906 6 0.905 8 0.906 3
IS 0.812 3 0.812 4 0.813 9 0.811 8 0.991 0 0.991 0 0.990 4 0.990 6
LU 0.967 6 0.948 3 0.926 4 0.930 2 0.986 4 0.985 9 0.985 9 0.983 4
MG 0.954 0 0.959 6 0.967 9 0.965 8 0.914 2 0.913 7 0.914 6 0.913 5
SP 0.969 2 0.957 7 0.962 6 0.963 5 0.987 4 0.985 2 0.987 9 0.988 0
4 结束语
本文设计并实现了一款名为 SWTuner 的新型编译调优框架, 该框架整合了分布式元搜索策略与先进的机器
学习技术, 旨在解决传统编译调优方法在处理复杂优化选项组合时所面临的局限性. SWTuner 通过引入 AUC-
Bandit 分布式元搜索策略, 有效地降低了编译和运行过程的时间开销, 从而提高了搜索效率. 此外, SWTuner 利用
随机森林模型对编译选项与程序性能之间的关系进行了建模, 并将其应用于元搜索过程中, 从而减少了实际执行
的功耗开销. 通过引入 Shapley 值及其交互值来评估编译选项的重要程度及相关性, SWTuner 能够在确保调优效
果的同时, 显著降低搜索空间的维度. 实验结果表明, 在神威新一代超级计算机上对 NPB 基准测试用例进行的调
优中, 相比于其他主流调优方法或工具, SWTuner 在提升搜索效率的同时显著降低了功耗开销. 通过分析和筛选对
程序性能影响显著的选项, SWTuner 还能够进一步地指导应用算法及编译优化的改进.

