通过一个图并行计算的测试用例,来学习如何快速构建一个目标组件
其核心思想是通过继承现有组件再拓展自定义参数
创建脚本
如何创建脚本,具体还可以看官方说明:gem5: Adding cache to configuration script
mkdir configs/tutorial/part1/touch configs/tutorial/part1/components.py
配置脚本中,实现了对cache大小,核数的配置。后面可以通过调整参数值进行结果对比。脚本内容如下:
描述的是一个ARM 架构,单核,主频为3Ghz ,支持两级cache 。运行了一个 并行图算法基准测试套件,一共跑10次,每次输出时间。
from gem5.components.boards.simple_board import SimpleBoard
from gem5.components.processors.simple_processor import SimpleProcessor
from gem5.components.cachehierarchies.ruby.mesi_two_level_cache_hierarchy import (MESITwoLevelCacheHierarchy,
)
from gem5.components.memory.single_channel import SingleChannelDDR4_2400
from gem5.components.processors.cpu_types import CPUTypes
from gem5.isas import ISA
from gem5.resources.resource import obtain_resource
from gem5.simulate.simulator import Simulator
cache_hierarchy = MESITwoLevelCacheHierarchy(l1d_size="16KiB",l1d_assoc=8,l1i_size="16KiB",l1i_assoc=8,l2_size="256KiB",l2_assoc=16,num_l2_banks=1,
)
memory = SingleChannelDDR4_2400()
processor = SimpleProcessor(cpu_type=CPUTypes.TIMING, isa=ISA.ARM, num_cores=1)
board = SimpleBoard(clk_freq="3GHz",processor=processor,memory=memory,cache_hierarchy=cache_hierarchy,
)
board.set_workload(obtain_resource("arm-gapbs-bfs-run"))
simulator = Simulator(board=board)
simulator.run()
运行脚本
运行脚本
./build/ALL/gem5.opt configs/tutorial/part1/components.py
其平均耗时为 0.001 秒, 输出结果如下:
修改参数
修改CPU主频为6Ghz ,其平均时间由之前的0.001 ,变成了现在的0.0005