通過一個圖并行計算的測試用例,來學習如何快速構建一個目標組件
其核心思想是通過繼承現有組件再拓展自定義參數
創建腳本
如何創建腳本,具體還可以看官方說明: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