chsgcxy
Ruby memory sub-system
Power and thermal model
GPU
Ruby implements a detailed simulation model for the memory subsystem
Inclusive/exclusive cache hierarchies
Various replacement policies
Coherence protocol implementations
Interconnection networks
DMA and memory controllers
Various sequencers
NetWork
GarnetNetWork
SimpleNetWork
Protocol
MI_example
MESI_Two_level
MOESI_CMP_directory
MOESI_CMP_token
MOESI_hammer
Garnet_standalone
MESI_Three_Level
CHI
Interconnection network could be replaced with the external simulator TOPAZ.
This simulator is ready to run within gem5 and adds a significant number of features over original ruby network simulator.
It includes, new advanced router micro-architectures, new topologies, precision-performance adjustable router models, mechanisms to speed-up network simulation, etc
ceunican/tpzsimul: Automatically exported from code.google.com/p/tpzsimul (github.com)
Topology
PROTOCOL
scons build/ARM/gem5.debug PROTOCOL=CHI
*CHI only support CustomMesh topology
Run an example
CHI
./build/ARM/gem5.debug configs/example/se.py
--cpu-type=ArmO3CPU
--caches --l2cache --mem-type=DDR4_2400_8x8
--mem-size=2GB --l1d_size=64kB --l1i_size=32kB
--l2_size=512kB -n 4 --ruby
--topology=CustomMesh
--chi-config=configs/example/noc_config/2x4.py
-c tests/test-progs/threads/src/threads
MI_example
MESI_Two_level
MOESI_CMP_directory
MOESI_CMP_token
MOESI_hammer
Garnet_standalone
MESI_Three_Level
CHI
Topology dot file
2x4.py
CHI 2x4 Connected by link
src/python/m5/util/dot_writer_ruby.py
Need to rebuild when change the file
Garnet Router
credit
Gem5 power consumption model:
gem5 itself cannot provide complete power information. Although the power consumption model of the memory part is relatively complete, it lacks a more accurate CPU power consumption model.
configs/example/arm/fs_power.py
support ARM DVFS
Gem5 stat.txt + mcpat
Although there are some third-party tools that can calculate detailed energy consumption information based on the output of gem5 simulator, such as mcpat, etc., studies have shown that the calculation results of these tools have a large error with the results obtained by hardware measuring instruments
ext/mcpat
gem5: ARM Power Modelling gem5: ARM DVFS Support
src/arch/amdgpu/
def connectGPU(system, args):
system.pc.south_bridge.gpu = AMDGPUDevice(pci_func=0, pci_dev=8, pci_bus=0)
system.pc.south_bridge.gpu.trace_file = args.gpu_mmio_trace system.pc.south_bridge.gpu.rom_binary = args.gpu_rom system.pc.south_bridge.gpu.checkpoint_before_mmios = \
args.checkpoint_before_mmios
class AMDGPUDevice : public PciDevice
Only support AMD GPU
define gpu instructions
AMD vega/gcn3
X86 CPU
Only se mode
PCIE
src/dev/amdgpu/
define gpu device
src/dev/gpu-compute/
gpu micro architecture
a Docker image that contains the proper software and libraries needed to run the GPU model in gem5 Reference: util/dockerfiles/gcn-gpu/README.md
Thanks