aryanitish / thesis

Running Parsec benchmark on gem5 simulated system
0 stars 0 forks source link

Enquiry #1

Open Cownic opened 10 months ago

Cownic commented 10 months ago

Hi, I a undergraduate student working on Gem5, learning how to use the PARSEC benchmark, could i ask you some questions related to it

aryanitish commented 10 months ago

Hello there, Yes ofcourse, I would be happy to help.

Cownic commented 10 months ago

ohhh think you so much for being willing to help. it was stated in your readme that it uses Linux in addition to the parsec image. Do I have to download it from somewhere and where do I put it ? I don't see it in the directory layout that U have on the readme.

aryanitish commented 10 months ago

Sure, let me clarify it for you. The repository is a copy of this, so the README is also the same. I would recommend to follow this link instead of my repository to run simulations. I implemented changes for my thesis in some config files which is described in this file. Regarding your doubt, there are two things which a full system gem5 simulation needs: a linux kernel and a disk-image(in which parsec is already installed). The kernel can be obtained from kernel and the disk-image will be created once you go through the steps in the README. For starting out, it is better to follow the official gem5 repository and to obtain resources such as kernel and disk-images follow this

Cownic commented 10 months ago
Thank you for the comprehensive reply. I am grateful for the links that you have provided. For the kernel stuff, do i place it under the directory of parsec parsec/ ___ gem5/ # gem5 folder
___ disk-image/
___ build.sh # the script downloading packer binary and building the disk image
___ shared/
___ parsec/
___ parsec-image/
___ parsec # the disk image will be here
___ parsec.json # the Packer script
___ parsec-install.sh # the script to install PARSEC
___ post-installation.sh # the script to install m5
___ runscript.sh # script to run each workload
___ parsec-benchmark # the parsec benchmark suite
___linux ?
___ README.md
aryanitish commented 10 months ago

Actually you do not need to download anything. The script x86-parsec-benchmarks.py automatically downloads the kernel and disk-image. Build gem5 first and then run the last command in the readme with your preferred benchmark and size:

# In the gem5 directory
build/X86/gem5.opt \
configs/example/gem5_library/x86-parsec-benchmarks.py \
--benchmark <benchmark_program> \
--size <size> 
Cownic commented 10 months ago

ohhhh alright that works for me Thank you for the guidance. One last question, the x86-parsec-benchmarks.py uses MESI_Two_Level as the cache protocol, do u know if its possible to change it to the other cache protocols that are supported by gem5, such as MI, MOESI etc ?

aryanitish commented 10 months ago

yes you can use any of the gem5 supported cache protocols. If you see in the x86-parsec-benchmarks.py script at given lines 70, 122 you can understand how it imports the already built components. Then you can modify these lines to use other cache heirarchies/protocols. Not all the supported coherence protocols are prebuilt as a component but you can learn to make your own with the gem5-ruby tutorials. I hope it helps