Resource: lulesh

lulesh is a DOE proxy application that is used as an example of hydrodynamics modeling. The version provided is for use with the gpu-compute model of gem5.

Compiling LULESH, compiling the GCN3_X86 gem5, and running LULESH on gem5 is dependent on the gcn-gpu docker image, built from the util/dockerfiles/gcn-gpu/Dockerfile on the gem5 stable branch.

Compilation and Running

cd src/gpu/lulesh
docker run --rm -v ${PWD}:${PWD} -w ${PWD} -u $UID:$GID make

By default, the makefile builds for gfx801, and is placed in the src/gpu/lulesh/bin folder.

lulesh is a GPU application, which requires that gem5 is built with the GCN3_X86 architecture. To build GCN3_X86:

# Working directory is your gem5 directory
docker run --rm -v ${PWD}:${PWD} -w ${PWD} -u $UID:$GID scons -sQ -j$(nproc) build/GCN3_X86/gem5.opt

The following command shows how to run lulesh

Note: lulesh has two optional command-line arguments, to specify the stop time and number of iterations. To set the arguments, add --options="<stop_time> <num_iters> to the run command. The default arguments are equivalent to --options="1.0e-2 10"

# Assuming gem5 and gem5-resources are in your working directory
docker run --rm -v ${PWD}:${PWD} -w ${PWD} -u $UID:$GID gem5/build/GCN3_X86/gem5.opt gem5/configs/example/ -n3 --mem-size=8GB --benchmark-root=gem5-resources/src/gpu/lulesh/bin -clulesh

Pre-built binary