gem5-dev@gem5.org

The gem5 Developer List

View all threads

[S] Change in gem5/gem5[develop]: tests: Add GPU-FS checkpoint test to weekly

VR
VISHNU RAMADAS (Gerrit)
Mon, May 1, 2023 3:12 PM

VISHNU RAMADAS has uploaded this change for review. (
https://gem5-review.googlesource.com/c/public/gem5/+/70197?usp=email )

Change subject: tests: Add GPU-FS checkpoint test to weekly
......................................................................

tests: Add GPU-FS checkpoint test to weekly

This commit adds a GPU-FS checkpoint-and-restore test to weekly. The
test builds the disk image and downloads the kernel image needed for
GPU-FS to work. Once the images are ready, square is run and a
checkpoint is taken just before the application is launched. Then, the
checkpoint is restored and run to completion.

Change-Id: I85b78d220a276b34898cfa40b50fd654d47953cd

M tests/weekly.sh
1 file changed, 32 insertions(+), 0 deletions(-)

diff --git a/tests/weekly.sh b/tests/weekly.sh
index 9c7ebdf..baa12b6 100755
--- a/tests/weekly.sh
+++ b/tests/weekly.sh
@@ -387,6 +387,38 @@

--benchmark-root=${gem5_root}/gem5-resources/src/gpu/pannotia/sssp/bin
-c sssp_ell.gem5 --options="1k_128k.gr 0"

+# Test GPU-FS checkpointing
+# Checkpoints are only supported on VEGA_X86. Furthermore, GPUFS only works
+#if the value in /proc/sys/kernel/perf_event_paranoid is 1 or less. A value
+# greater than 1 prevents gem5 from making the syscall to perf_event_open
+# and GPUFS fails
+perf_event_paranoid=$(cat /proc/sys/kernel/perf_event_paranoid)
+if [[ "$gpu_isa" == "VEGA_X86" ]] && [[ $perf_event_paranoid -le 1 ]]; then

  • docker run --rm --volume "${gem5_root}":"${gem5_root}" -w \
  •   "${gem5_root}" --memory="${docker_mem_limit}" hacc-test-weekly bash  
    

-c \

  •   "rm -rf ${gem5_root}/m5out"
    
  • mkdir -p
    ${gem5_root}/gem5-resources/src/gpu-fs/gem5/util/m5/build/x86/out
  • cd ${gem5_root}/util/m5
  • cp build/x86/out/m5
    ${gem5_root}/gem5-resources/src/gpu-fs/gem5/util/m5/build/x86/out/
  • cd ${gem5_root}/gem5-resources/src/gpu-fs/disk-image
  • Build the disk image

  • ./build.sh
  • cd ${gem5_root}
  • Download square binary

  • wget -qN http://dist.gem5.org/dist/develop/test-progs/square/square
  • Download kernel for GPUFS

  • wget --no-check-certificate
    https://dist.gem5.org/dist/v22-1/kernels/x86/static/vmlinux-5.4.0-105-generic
  • mv vmlinux-5.4.0-105-generic ${gem5_root}/gem5-resources/src/gpu-fs/
  • Run square and create a checkpoint before kernel launch

  • build/VEGA_X86/gem5.opt configs/example/gpufs/vega10_kvm.py
    --disk-image
    ${gem5_root}/gem5-resources/src/gpu-fs/disk-image/rocm42/rocm42-image/rocm42
    --kernel ${gem5_root}/gem5-resources/src/gpu-fs/vmlinux-5.4.0-105-generic
    --gpu-mmio-trace ${gem5_root}/gem5-resources/src/gpu-fs/vega_mmio.log --app
    ${gem5_root}/square --checkpoint-dir m5out/
  • Restore from the checkpoint and complete square execution

  • build/VEGA_X86/gem5.opt configs/example/gpufs/vega10_kvm.py
    --disk-image
    ${gem5_root}/gem5-resources/src/gpu-fs/disk-image/rocm42/rocm42-image/rocm42
    --kernel ${gem5_root}/gem5-resources/src/gpu-fs/vmlinux-5.4.0-105-generic
    --gpu-mmio-trace ${gem5_root}/gem5-resources/src/gpu-fs/vega_mmio.log --app
    ${gem5_root}/square --restore-dir m5out/
  • rm ${gem5_root}/square
  • cd ${gem5_root}
  • rm -rf ${gem5_root}/m5out
  • rm -rf
    ${gem5_root}/gem5-resources/src/gpu-fs/disk-image/rocm42/rocm42-image
    +fi
  • Delete the gem5 resources repo we created -- need to do in docker

because of

cachefiles DNNMark creates

docker run --rm --volume "${gem5_root}":"${gem5_root}" -w \

--
To view, visit
https://gem5-review.googlesource.com/c/public/gem5/+/70197?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings

Gerrit-MessageType: newchange
Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I85b78d220a276b34898cfa40b50fd654d47953cd
Gerrit-Change-Number: 70197
Gerrit-PatchSet: 1
Gerrit-Owner: VISHNU RAMADAS vramadas@wisc.edu

VISHNU RAMADAS has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/70197?usp=email ) Change subject: tests: Add GPU-FS checkpoint test to weekly ...................................................................... tests: Add GPU-FS checkpoint test to weekly This commit adds a GPU-FS checkpoint-and-restore test to weekly. The test builds the disk image and downloads the kernel image needed for GPU-FS to work. Once the images are ready, square is run and a checkpoint is taken just before the application is launched. Then, the checkpoint is restored and run to completion. Change-Id: I85b78d220a276b34898cfa40b50fd654d47953cd --- M tests/weekly.sh 1 file changed, 32 insertions(+), 0 deletions(-) diff --git a/tests/weekly.sh b/tests/weekly.sh index 9c7ebdf..baa12b6 100755 --- a/tests/weekly.sh +++ b/tests/weekly.sh @@ -387,6 +387,38 @@ --benchmark-root=${gem5_root}/gem5-resources/src/gpu/pannotia/sssp/bin \ -c sssp_ell.gem5 --options="1k_128k.gr 0" +# Test GPU-FS checkpointing +# Checkpoints are only supported on VEGA_X86. Furthermore, GPUFS only works +#if the value in /proc/sys/kernel/perf_event_paranoid is 1 or less. A value +# greater than 1 prevents gem5 from making the syscall to perf_event_open +# and GPUFS fails +perf_event_paranoid=$(cat /proc/sys/kernel/perf_event_paranoid) +if [[ "$gpu_isa" == "VEGA_X86" ]] && [[ $perf_event_paranoid -le 1 ]]; then + docker run --rm --volume "${gem5_root}":"${gem5_root}" -w \ + "${gem5_root}" --memory="${docker_mem_limit}" hacc-test-weekly bash -c \ + "rm -rf ${gem5_root}/m5out" + mkdir -p ${gem5_root}/gem5-resources/src/gpu-fs/gem5/util/m5/build/x86/out + cd ${gem5_root}/util/m5 + cp build/x86/out/m5 ${gem5_root}/gem5-resources/src/gpu-fs/gem5/util/m5/build/x86/out/ + cd ${gem5_root}/gem5-resources/src/gpu-fs/disk-image + # Build the disk image + ./build.sh + cd ${gem5_root} + # Download square binary + wget -qN http://dist.gem5.org/dist/develop/test-progs/square/square + # Download kernel for GPUFS + wget --no-check-certificate https://dist.gem5.org/dist/v22-1/kernels/x86/static/vmlinux-5.4.0-105-generic + mv vmlinux-5.4.0-105-generic ${gem5_root}/gem5-resources/src/gpu-fs/ + # Run square and create a checkpoint before kernel launch + build/VEGA_X86/gem5.opt configs/example/gpufs/vega10_kvm.py --disk-image ${gem5_root}/gem5-resources/src/gpu-fs/disk-image/rocm42/rocm42-image/rocm42 --kernel ${gem5_root}/gem5-resources/src/gpu-fs/vmlinux-5.4.0-105-generic --gpu-mmio-trace ${gem5_root}/gem5-resources/src/gpu-fs/vega_mmio.log --app ${gem5_root}/square --checkpoint-dir m5out/ + # Restore from the checkpoint and complete square execution + build/VEGA_X86/gem5.opt configs/example/gpufs/vega10_kvm.py --disk-image ${gem5_root}/gem5-resources/src/gpu-fs/disk-image/rocm42/rocm42-image/rocm42 --kernel ${gem5_root}/gem5-resources/src/gpu-fs/vmlinux-5.4.0-105-generic --gpu-mmio-trace ${gem5_root}/gem5-resources/src/gpu-fs/vega_mmio.log --app ${gem5_root}/square --restore-dir m5out/ + rm ${gem5_root}/square + cd ${gem5_root} + rm -rf ${gem5_root}/m5out + rm -rf ${gem5_root}/gem5-resources/src/gpu-fs/disk-image/rocm42/rocm42-image +fi + # Delete the gem5 resources repo we created -- need to do in docker because of # cachefiles DNNMark creates docker run --rm --volume "${gem5_root}":"${gem5_root}" -w \ -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/70197?usp=email To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings Gerrit-MessageType: newchange Gerrit-Project: public/gem5 Gerrit-Branch: develop Gerrit-Change-Id: I85b78d220a276b34898cfa40b50fd654d47953cd Gerrit-Change-Number: 70197 Gerrit-PatchSet: 1 Gerrit-Owner: VISHNU RAMADAS <vramadas@wisc.edu>