This is a modified version of gem5 with support to model and study CHIPS systems:
git clone https://github.com/GT-CHIPS/gem5_chips.git
On Ubuntu, you can install all of the required dependencies with the following command.
sudo apt install build-essential git m4 scons zlib1g zlib1g-dev libprotobuf-dev protobuf-compiler libprotoc-dev libgoogle-perftools-dev python-dev python
The gem5 project uses Git for version control. Git is a distributed version control system. More information about Git can be found by following the link. Git should be installed by default on most platforms. However, to install Git in Ubuntu use
sudo apt-get install git
You may need to use environment variables to point to a non-default version of gcc.
On Ubuntu, you can install a development environment with
sudo apt-get install build-essential
gem5 uses SCons as its build environment. SCons is like make on steroids and uses Python scripts for all aspects of the build process. This allows for a very flexible (if slow) build system.
To get SCons on Ubuntu use
sudo apt-get install scons
gem5 relies on the Python development libraries. To install these on Ubuntu use
sudo apt-get install python-dev
“Protocol buffers are a language-neutral, platform-neutral extensible mechanism for serializing structured data.” In gem5, the protobuf library is used for trace generation and playback. protobuf is not a required package, unless you plan on using it for trace generation and playback.
sudo apt-get install libprotobuf-dev python-protobuf protobuf-compiler libgoogle-perftools-dev
Getting the code Change directories to where you want to download the gem5 source. Then, to clone the repository, use the git clone command.
scons build/RISCV_MESI_Two_Level/gem5.opt
(you can add -j N for a faster N-threaded build)
See my_scripts/run_demo.sh
./build/RISCV_MESI_Two_Level/gem5.opt configs/example/se.py \
--cpu-type TimingSimpleCPU \
--num-cpus=64 \
--l1d_size=16kB \
--l1i_size=16kB \
--num-l2caches=64 \
--l2_size=128kB \
--num-dirs=4 \
--mem-size=4096MB \
--ruby \
--network=garnet2.0 \
--topology=CHIPS_Multicore_MemCtrlChiplet4 \
-c tests/test-progs/hello/bin/riscv/linux/hello
configs/topologies/CHIPS_Multicore_Monolithic.py
configs/topologies/CHIPS_Multicore_MemCtrlChiplet4.py
configs/topologies/CHIPS_Multicore_GTRocketN.py
--chiplet-link-latency
--chiplet-link-width
--interposer-link-latency
--interposer-link-width
--clip-logic-ifc-delay
--clip-phys-ifc-delay
--buffers-per-ctrl-vc
--buffers-per-data-vc
- Tushar Krishna: tushar@ece.gatech.edu
- Mayank Parasar: mparasar3@gatech.edu
- This work was supported by DARPA CHIPS.
- Srikant Bharadwaj (AMD Research)
- Christopher Batten, Tuan Ta (Cornell University)
- for RISC-V Ruby support and LIGRA workloads (http://www.csl.cornell.edu/~cbatten/pdfs/ta-gem5-riscv-slides-carrv2018.pdf)