This repo adds m5 annotations to the NAS Parallel Benchmarks located in
NPB/NPB3.4-OMP
.
The annotations are added to the timed sections as follows,
- An
m5_work_begin()
call beforetimer_start(t_bench)
, ortimer_start(t_total)
, or an equivalent. - An
m5_work_end()
call aftertimer_stop(t_bench)
, ortimer_stop(t_total)
, or an equivalent.
Notes:
- For the
DC
benchmark, the work is split into tasks via OMP directive. Each task uses a different timer for its timed section. To keep it simple, we decided to put anm5_work_begin()
before the OMP task directive, and anotherm5_work_end()
after the OMP task directive.
In order to compile the benchmarks with m5 annotations, the following environment variables must be set,
M5_ANNOTATION # If M5_ANNOTATION=1, the build system will compile the binaries
# with m5 annotations.
GEM5_INCLUDE_DIR # Path to the gem5's include/ directory.
# Typically, the path is gem5/include.
GEM5_M5_ABI_DIR # Path to m5 utility abi folder for a specific ISA.
# Typically,
# For x86: gem5/util/m5/src/abi/x86/
# For arm64: gem5/util/m5/src/abi/arm64/
# For riscv: gm5/util/m5/src/abi/riscv
If you're cross compiling, you might want to set additional environment variables as follows,
FC # Path to the gfortran compiler for compiling **guest** binaries.
CC # Path to the gcc compiler for compiling **guest** binaries.
UCC # Path to the gcc compiler for compiling utilities **guest** objects.
SYS_UCC # Path to the gcc compiler for compiling utilities **host** objects.