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

2358                                                       软件学报  2026  年第  37  卷第  6  期



                                        IR RPM
                                                                           要支撑的架构
                                                                           和微架构列表
                                     WORKDIR/                              machine1.bc
                                     /usr/lib64/llvmir/                    machine2.bc
                                     {                                        ···
                                     libx.so.1
                                     libx.so.1_cmd}
                                                     libx.so.1


                                                      llvm-attribute-adjust




                                  libx.so.1_cmd          新 libx.so.1
                                                         for
                                                          machine1
                                                          machine2
                                                            ···



                                                         clang+lld

                                 用户 2                                               用户 1

                                            RPM SPEC           RPM SPEC
                                            OUTPUT WORKDIR2    OUTPUT WORKDIR1
                                            /usr/lib64/libx.so.1  /usr/lib64/libx.so.1
                               dnf                                                     dnf
                                            machine2           machine1


                               RPM repo for     RPM 包 for          RPM 包 for      RPM repo for
                                machine2        machine2            machine1       machine1
                                        createrepo                         createrepo
                                                 图 4 RuyiBuild  云端  IR  转换

                    通过上述客户端设备上的资源自适应调度机制、云端环境中的批量并行转换机制, 以及进一步设计实现的云
                 端批量   RPM  转换与  RPM  仓库自动化构建机制, RuyiBuild     工具链有效地满足了不同应用场景对软件部署效率和
                 用户体验的双重需求. 这一整套机制的实施, 不仅确保了客户端设备的转换任务不会影响用户体验, 也充分利用了
                 云端服务器的资源优势, 极大简化了跨平台软件分发与部署的流程, 验证了                        RuyiBuild  工具链在实际应用场景中
                 的先进性与实用性.
                  3.5   基于动态模板的指令集扩展自适应与微架构优化实现机制
                    RISC-V  指令集架构因其开放性与模块化设计, 允许芯片制造商针对特定应用场景定制指令集扩展, 这一特征
                 在提升硬件设计灵活性的同时, 也带来了严重的软件生态碎片化问题. 为了在这种碎片化的生态环境下实现真正
                 意义上的软件跨平台兼容与精细化性能优化, RuyiBuild              工具链设计并实现了一套基于动态模板的指令集扩展自
                 适应与微架构精细优化技术机制. 该机制旨在确保由统一                  LLVM IR  文件构建的软件, 能够在部署具体目标设备时
                 自动进行精确的指令集扩展适配与微架构定制优化, 达到最佳的性能表现.
                    具体实现上, RuyiBuild  工具链引入了一种动态模板比对与指令集扩展自动适配的流程. 首先, 在目标设备                          (客
                 户端或云端) 部署时, RuyiBuild   自动化脚本工具会自动查询目标设备的               CPU  指令集扩展特性, 特别是在       RISC-V
   34   35   36   37   38   39   40   41   42   43   44