Page 220 - 《软件学报》2026年第6期
P. 220

周文浩 等: SWTuner: 基于机器学习方法的分布式编译调优框架                                              2539


                                   表 4    分布式元搜索策略下不同搜索技术的使用次数占比 (%)(续)

                    编译器        测试用例         搜索策略         Iter0     Iter1      Iter2     Iter3     平均
                                              UGM        49.60     49.50     37.10     43.50     44.93
                                              NGM        36.60     36.80     49.60     40.90     40.98
                                 BT
                                              DEM        13.00     12.60     12.80     15.20     13.40
                                              RNM        0.80       1.10      0.50      0.40      0.70
                    LLVM
                                              UGM        41.10     44.20     40.10     47.30     43.18
                                              NGM        43.30     42.90     44.30     36.60     41.78
                                 CG
                                              DEM        15.00     12.00     12.00     15.60     13.65
                                              RNM        0.60       0.90      0.60      0.50      0.65
                  3.2.2    性能建模及预测
                    在机器学习模型指导的性能预测阶段, 模型的训练效果直接关系到后续搜索过程的精度和效率. SWTuner 使
                 用结果数据库中存储的历史搜索样本集合               S t 训练一个包含   30  棵决策树的随机森林模型, 并且在每个迭代阶段计
                 算验证样本集合      S v 的决定系数  R 以评估其泛化能力        (其中  W t /W v =4). 如图  8  所示, 对于典型测试用例, 随机森林
                                           2
                 模型的决定系数均高于        0.96, 并且随着迭代次数的增加呈上升的趋势. 随着模型预测准确性的提高, 基于该模型的
                 预测执行过程将能够更准确地收集性能数据, 从而优化元搜索策略, 进一步提升搜索效率.
                    训练成本是衡量机器学习模型实用性的关键要素之一. 深度神经网络能够学习到非常复杂的非线性关系, 但
                 是其对训练数据的要求较高且训练开销较大, 难以适用于搜索空间频繁变化的编译调优任务. 相比之下, 随机森林
                 模型具有较低的训练成本和更快的推理速度, 因此更适合于这类需要快速迭代的应用场景. 如图                              9  所示, 随机森林
                 模型在确保预测精度达到较高水平的同时, 最大训练时间开销仅为                      0.4 s 左右. 值得注意的是, 随着迭代次数的增
                 加, 模型的整体训练时间呈现出逐渐减少的趋势, 这意味着模型的学习效率在不断提升, 优化过程逐渐成熟. 上述
                 数据表明, 随机森林模型在处理大规模数据集时具有良好的收敛性和稳定性, 为编译调优任务的快速迭代和实时
                 决策提供了有力支持.



                      1.01                                         0.45
                                 Iter0  Iter1  Iter2  Iter3                    Iter0  Iter1  Iter2  Iter3
                      1.00                                         0.40
                                                                   0.35
                      0.99
                    决定系数 R 2  0.98                               训练时间开销 (s)  0.30
                                                                   0.25
                                                                   0.20
                      0.97
                                                                   0.15
                      0.96
                      0.95                                         0.10
                                                                   0.05
                      0.94                                           0
                          BT-GCC BT-LLVM CG-GCC CG-LLVM                BT-GCC BT-LLVM CG-GCC CG-LLVM
                  图 8    典型测试用例在不同迭代中的模型训练效果                   图 9    典型测试用例在不同迭代中的模型训练开销
                    较高的预测准确性以及较低的训练开销使得通过性能预测替代部分实际执行成为可能, 这种方法能够在较大
                 程度上帮助减少系统的整体功耗. 性能预测阶段的样本集合记为                             t ,  ): i=1, 2,…, W p }, 其中  t i 表示选项组
                                                                            ′
                                                                   S p ={(x i , t i
                                                                            i
                 合  x i 的预测执行时间,  t  表示实际执行时间. 假设调优过程中测试用例在单位时间内的运行功耗为固定值, 则相较
                                   ′
                                   i
                 于传统的实际运行方式, SWTuner 在性能预测阶段的功耗节省比例可通过公式                      (9) 近似计算获得:

                                                           ∑
                                                                        t i
                                                              ((x i ,t i ,t ′ )∈S p )∩(t i ⩽ET)
                                                                 i
                                        Ratio PowerSaving ≈ ∑      ∑                                  (9)
                                                                 t i +          t ′
                                                      ((x i ,t i ,t ′ )∈S p )∩(t i ⩽ET)  ((x i ,t i ,t ′ )∈S p )∩(t i >ET)  i
                                                         i              i
                    图  10  展示了  NPB  典型测试用例在性能预测阶段的功耗节省情况, 所有典型用例的平均功耗节省比例约为
                 23.2%. 从图  10  中可以看出, 编译器类型对功耗节省的影响较为显著, GCC              和  LLVM  编译器的平均功耗节省比例
   215   216   217   218   219   220   221   222   223   224   225