This document provides instructions to create a GAP Benchmark Suite (GAPBS) disk image, which, along with an example script, may be used to run GAPBS within gem5 simulations. The example script uses a pre-built disk-image.
A pre-built disk image, for X86, can be found, gzipped, here: http://dist.gem5.org/dist/v21-2/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-built 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.
An example script with a pre-configured system is available in the following directory within the gem5 repository:
The example script specifies a system with the following parameters:
KVMfor startup and
TIMINGfor ROI execution). There are 2 CPU cores, each clocked at 3 GHz.
MESI_Two_Levelcache with 32 kB L1I and L1D size, and, 256 kB L2 size. The L1 cache(s) has associativity of 8, and, the L2 cache has associativity 16. There are 2 L2 cache banks.
x86-gapbs, the disk image created from following the instructions in this
The example script must be run with the
X86 binary. To build:
git clone https://gem5.googlesource.com/public/gem5 cd gem5 scons build/X86/gem5.opt -j<proc>
Once compiled, you may use the example config file to run the GAPBS benchmark programs using the following command:
# In the gem5 directory build/X86/gem5.opt \ configs/example/gem5_library/x86-gapbs-benchmarks.py \ --benchmark <benchmark_program> \ --synthetic <synthetic> \ --size <size_or_graph_name>
Description of the three arguments, provided in the above command are:
bfs. For more information on the workloads can be found at http://gap.cs.berkeley.edu/benchmark.html.
USA-road-d.NY.gr. Note that
--size USA-road-d.NY.grcannot be combined, and, vice versa for real graphs.
Working status of these tests for gem5-20 can be found here.