Gem5 Aladdin DRAMSim2 - leeyoungseo/- GitHub Wiki

GEM5-ALADDIN + DRAMSIM2 INSTALLATION

gem5-aladdin ๊ณต์‹ github
์œ„์˜ ์ž๋ฃŒ์—์„œ requirement ๋“ฑ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ, ๋จผ์ € requirement๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์•„๋ž˜ ๊ณผ์ •์„ ์ง„ํ–‰ํ•ด์•ผ ํ•จ

1. Install Gem5-Aladdin

git clone https://github.com/harvard-acc/gem5-aladdin
git submodule update --init --recursive

2. Install DRAMSim2 in Gem5-Aladdin

cd ext/dramsim2
git clone git://github.com/dramninjasUMD/DRAMSim2.git

3. Build Gem5-Aladdin + DRAMSim2

๊ฒฝ๋กœ ๋ฌธ์ œ๋กœ, ์•„๋ž˜์™€ ๊ฐ™์€ ์ˆ˜์ •์ด ์ถ”๊ฐ€์ ์œผ๋กœ ํ•„์š”ํ•จ

vi src/mem/dramsim2_wrapper.cc

86     string working_dir_str;
87     working_dir_str = "/your/gem5/aladdin/path/" + working_dir;
88     _clockPeriod = extractConfig<double>("tCK=",
89                                          working_dir_str + '/' + config_file);
90     
91     if (!_clockPeriod)
92         fatal("DRAMSim2 wrapper failed to get clock\n");
93     
94     // we also need to know what transaction queue size DRAMSim2 is
95     // using so we can stall when responses are blocked
96    _queueSize = extractConfig<unsigned int>("TRANS_QUEUE_DEPTH=",
97                                             working_dir_str + '/' + system_file);
98     
99     if (!_queueSize)
100         fatal("DRAMSim2 wrapper failed to get queue size\n");
101    
102    
103    // finally, get the data bus bits and burst length so we can add a
104    // sanity check for the burst size
105     unsigned int dataBusBits = 
106         extractConfig<unsigned int>("JEDEC_DATA_BUS_BITS=",
107                                     working_dir_str + '/' + system_file);
108    unsigned int burstLength =
109        extractConfig<unsigned int>("BL=", working_dir_str + '/' + config_file);

vi ext/dramsim2/DRAMSim2/IniReader.cpp

362         filename = "/your/gem5/aladdin/path/" + filename;

ReadIni ํ•จ์ˆ˜ ์•„๋ž˜์— ์žˆ๋Š” ๊ฒฝ๋กœ๋ฅผ ์ˆ˜์ •

vi ext/dramsim2/DRAMSim2/MultiChannelMemorySystem.cpp

239                         path = "/your/gem5/aladdin/path/" + path;

MultiChannelMemorySystem::InitOutputFiles ํ•จ์ˆ˜ ์•„๋ž˜์— ์žˆ๋Š” ๊ฒฝ๋กœ๋ฅผ ์ˆ˜์ •

scons -j8 build/X86/gem5.opt

-j8 option์€ 8๊ฐœ์˜ thread์—์„œ compile์„ ์ง„ํ–‰ํ•œ๋‹ค๋Š” ๋œป์œผ๋กœ, ๋นจ๋ฆฌ ์ง„ํ–‰ํ•˜๊ธฐ ์œ„ํ•จ์ž„


4. Example

export ALADDIN_HOME=/your/gem5/aladdin/path/
cd src/aladdin/integration-test/with-cpu/test_load_store
sh run.sh

integration-test์— example๋“ค์ด ์žˆ์œผ๋ฉฐ, test_load_store (with-cpu) ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•˜๊ฒ ์Œ

์œ„์™€ ๊ฐ™์ด run.sh๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด configuration์— ๋งž๊ฒŒ gem5-aladdin simulator๊ฐ€ ๋™์ž‘ํ•จ

DRAMSim2์™€ ๊ฐ™์ด ๋™์ž‘ํ•˜๊ธฐ ์œ„ํ•ด์„œ shell script file์ธ run.sh์„ ์•„๋ž˜์™€ ๊ฐ™์ด ์ˆ˜์ •

14 --mem-type=DRAMSim2 \

gem5-aladdin์— ๋Œ€ํ•œ output ํŒŒ์ผ์€ ๋™์ผ ๊ฒฝ๋กœ์˜ outputs/ ํด๋”์—,

dramsim2์— ๋Œ€ํ•œ output ํŒŒ์ผ์€ /ext/dramsim2/DRAMSim2/results/์— vis ํŒŒ์ผ๋กœ ์กด์žฌํ•จ

โš ๏ธ **GitHub.com Fallback** โš ๏ธ