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 的运行模式调整为全

