Page 55 - 《软件学报》2025年第9期
P. 55

3966                                                       软件学报  2025  年第  36  卷第  9  期


                    一款模拟器能否启动        Linux  操作系统是评价其实用性的重要参考依据, 在              Spike-FlexiCAS  上能够成功运行
                 Linux  操作系统  (内核版本为   6.6.2, 根文件系统为   tmpfs). 本文测试了在不同核数的设定下启动           Linux  操作系统的
                 时间  (从开始启动操作系统到输入用户帐号的时间). 测试的结果如图                   10(a) 所示, 由于  Spike-FlexiCAS  是单线程运
                 行, 因此随着运行核数的增加, 启动操作系统的时间也逐渐增加. 而由于                      Spike-FlexiCAS  是单线程运行, 因此在
                 Spike-FlexiCAS  上进行多核仿真时, 理论上在多核的每个核上跑相同负载的真实时间应与在单核上跑一个负载的
                 真实时间成线性增加的关系. 为了评估修改了缓存模型的                   Spike-FlexiCAS  是否满足该关系, 本文测试了在不同核
                 数设定下的    Spike-FlexiCAS  上运行  Linux  操作系统, 并将每个核的负载都设为相同的情况下            (本文将负载设置为
                 运行  SPEC CPU2006  测试集中的   400.perlbench  的  10G  条指令), 负载运行完成花费的时间. 测试的结果如图        10(b)
                 所示, 随着运行核数的增加, 负载运行完成花费的时间基本都和核数维持在正比例的关系.

                      150                                        60
                                                                 48
                      100
                     启动时间 (s)                                   时间 (×10 3  s)  36

                                                                 24
                       50
                                                                 12

                        0                                         0
                             1       2       3       4                 1       2       3      4
                                      运行核数                                      运行核数
                                (a) 启动 Linux 操作系统的时间            (b) 每个核的负载都设为相同时, 负载运行完成花费时间对比
                            图 10 Spike-FlexiCAS  不同核数的设定下在     Linux  操作系统上操作花费的时间对比


                 4.3   测试集速度测评
                    本文比较了包含性二级缓存、缓存协议为               MESI 一致性协议配置      (其他配置和本文      4.1  节中说明的模拟器配
                 置相同) 下   Spike-FlexiCAS、gem5、Sniper 和  ZSim  在同一机器上运行   SPEC CPU2006  测试集的运行速度, 其中
                 Spike-FlexiCAS  和  gem5  作为仿真驱动型的模拟器运行     RISC-V  架构的测试集, Sniper 和  ZSim  作为执行驱动型的
                 模拟器运行    x86  架构的测试集, 测试它们运行       100G  条指令的速度. 各模拟器设置运行的核数均为             1.
                    4  个模拟器运行    SPEC CPU2006  测试集的速度如图     11  所示. ZSim  作为执行驱动型的模拟器会将测试的程序
                 直接在本地运行因此速度最快, 仿真速度约为               60 MIPS. 速度居第  2  位的模拟器是   Spike-FlexiCAS, 仿真速度约为
                 10 MIPS. 最后是  gem5  和  Sniper, 两者的仿真速度大约为   2 MIPS  和  0.5 MIPS.
                       10 6 5                                        Sniper  gem5  ZSim   Spike-FlexiCAS
                      每秒运行的千条指令数  10 4 3 2 1 0
                       10
                       10
                       10
                       10
                       10
                        −1
                       10
                                                           454.calculix
                                                   445.gobmk
                                                                  459.GemsFDTD
                                                                                         482.sphinx3
                                                                          464.h264ref
                       400.perlbench 401.bzip2 403.gcc  429.mcf 435.gromacs  444.namd  447.dealll 450.soplex  456.hmmer 458.sjeng 462.libquantum  465.tonto 470.lbm 473.astar 481.wrf 483.xalancbmk  mean
                                 410.bwaves
                                       434.zeusmp
                                           436.cactusADM
                                       图 11 各模拟器运行      SPEC CPU2006  测试集的速度对比

                    为了测试多核配置下的性能, 本文还测试了不同模拟器运行并行测试集                         PARSEC  [20] 的运行速度. 为了支持
                 PARSEC  测试集的运行, Spike-FlexiCAS  和  gem5  都是首先运行  Linux  操作系统  (因此  gem5  的运行模式调整为全
   50   51   52   53   54   55   56   57   58   59   60