| --- |
| title: GCN3 PENNANT Test |
| tags: |
| - x86 |
| - amdgpu |
| layout: default |
| permalink: resources/pennant |
| shortdoc: > |
| Resources to build a disk image with the GCN3 PENNANT workload. |
| --- |
| |
| # Resource: PENNANT |
| |
| PENNANT is an unstructured mesh physics mini-app designed for advanced |
| architecture research. It contains mesh data structures and a few |
| physics algorithms adapted from the LANL rad-hydro code FLAG, and gives |
| a sample of the typical memory access patterns of FLAG. |
| |
| ## Compiling and Running |
| |
| ``` |
| cd src/gpu/pennant |
| docker run --rm -v ${PWD}:${PWD} -w ${PWD} -u $UID:$GID gcr.io/gem5-test/gcn-gpu:v22-1 make |
| ``` |
| |
| By default, the binary is built for gfx801 and is placed in `src/gpu/pennant/build` |
| |
| pennant is a GPU application, which requires that gem5 is built with the GCN3_X86 architecture. |
| |
| pennant has sample input files located at `src/gpu/pennant/test`. The following command shows how to run the sample `noh` |
| |
| ``` |
| # Assuming gem5 and gem5-resources are in your working directory |
| docker run --rm -v ${PWD}:${PWD} -w ${PWD} -u $UID:$GID gcr.io/gem5-test/gcn-gpu:v22-1 gem5/build/GCN3_X86/gem5.opt gem5/configs/example/apu_se.py -n3 --benchmark-root=gem5-resources/src/gpu/pennant/build -cpennant --options="gem5-resources/src/gpu/pennant/test/noh/noh.pnt" |
| ``` |
| |
| The output gets placed in `src/gpu/pennant/test/noh/`, and the file `noh.xy` |
| against the `noh.xy.std` file. Note: Only some tests have `.xy.std` files to |
| compare against, and there may be slight differences due to floating-point rounding |
| |
| ## Pre-built binary |
| |
| <http://dist.gem5.org/dist/v22-1/test-progs/pennant/pennant> |
| |
| The information from the original PENNANT README is included below. |
| |
| PENNANT Description: |
| |
| PENNANT is an unstructured mesh physics mini-app designed for advanced |
| architecture research. It contains mesh data structures and a few |
| physics algorithms adapted from the LANL rad-hydro code FLAG, and gives |
| a sample of the typical memory access patterns of FLAG. |
| |
| Further documentation can be found in the 'doc' directory of the |
| PENNANT distribution. |
| |
| |
| Version Log: |
| |
| 0.6, February 2014: |
| Replaced GMV mesh reader with internal mesh generators. |
| Added QCS velocity difference routine to reflect a recent |
| bugfix in FLAG. Increased size of big test problems. |
| [ Master branch contained this change but CUDA branch does not: |
| First MPI version. MPI capability is working and mostly |
| optimized; MPI+OpenMP is working but needs optimization. ] |
| |
| 0.5, May 2013: |
| Further optimizations. |
| |
| 0.4, January 2013: |
| First open-source release. Fixed a bug in QCS and added some |
| optimizations. Added Sedov and Leblanc test problems, and some |
| new input keywords to support them. |
| |
| 0.3, July 2012: |
| Added OpenMP pragmas and point chunk processing. Modified physics |
| state arrays to be flat arrays instead of STL vectors. |
| |
| 0.2, June 2012: |
| Added side chunk processing. Miscellaneous minor cleanup. |
| |
| 0.1, March 2012: |
| Initial release, internal LANL only. |
| |