This document provides instructions to create a GAP Benchmark Suite (GAPBS) disk image, which, along with provided configuration scripts, may be used to run GAPBS within gem5 simulations.
A pre-build disk image, for X86, can be found, gzipped, here: http://dist.gem5.org/dist/v21-1/images/x86/ubuntu-18-04/gapbs.img.gz.
Assuming that you are in the
src/gapbs/ directory, first create
m5 (which is needed to create the disk image):
git clone https://gem5.googlesource.com/public/gem5 cd gem5/util/m5 scons build/x86/out/m5
To create the disk image you need to add the packer binary in the disk-image directory:
cd disk-image/ ./build.sh # the script downloading packer binary and building the disk image
After this process succeeds, the disk image can be found on the
GAPBS disk image can support both real and synthetic graph inputs. The current pre-build disk image contains only one graph input which includes the New York city road map (with 733K nodes) it can be found: http://users.diag.uniroma1.it/challenge9/download.shtml.
To use other graphs simply copy the graph in the gapbs/ directory and add them to gapbs/gapbs.json.
gem5 scripts which configure the system and run the simulation are available in
configs/. The main script
run_gapbs.py expects following arguments:
kernel : A manditory positional argument. The path to the Linux kernel. GAPBS has been tested with vmlinux-5.2.3. See
src/linux-kernel for information on building a linux kernel for gem5.
disk : A mandatory positional argument. The path to the disk image.
cpu_type : A mandatory positional argument. The cpu model (
num_cpus : A mandatory positional argument. The number of cpu cores.
mem_sys : A mandatory positional argument. The memory model (
benchmark : A mandatory positional argument. The graph workload (
synthetic : A mandatory positional argument. The graph type. If synthetic graph then
0 for a real world graph.
graph : A mandatory positional argument. If synthetic, then the size of the graph. Otherwise the name of graph to execute.
<gem5 X86 binary> configs/run_gapbs.py <kernel> <disk> <cpu_type> <num_cpus> <mem_sys> <benchmark> <synthetic> <graph>
Working status of these tests for gem5-20 can be found here.