1bedd5dcaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 2bedd5dcaSJeremy L Thompson# HONEE GitLab CI 3bedd5dcaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 4bedd5dcaSJeremy L Thompsonstages: 5bedd5dcaSJeremy L Thompson - test:stage-lint 6f27266cbSJeremy L Thompson - test:stage-full 7f7972399SJames Wright - test:post 8a3c4661bSJames Wright - test:docs 9a3c4661bSJames Wright - deploy 10bedd5dcaSJeremy L Thompson 11494078cdSJames Wrightworkflow: 12494078cdSJames Wright auto_cancel: 13494078cdSJames Wright on_job_failure: all 14494078cdSJames Wright 15bedd5dcaSJeremy L Thompson.test-basic: 16bedd5dcaSJeremy L Thompson interruptible: true 17bedd5dcaSJeremy L Thompson only: 18bedd5dcaSJeremy L Thompson refs: 19bedd5dcaSJeremy L Thompson - web 20bedd5dcaSJeremy L Thompson - merge_requests 21bedd5dcaSJeremy L Thompson 22bedd5dcaSJeremy L Thompson.test: 23bedd5dcaSJeremy L Thompson extends: .test-basic 24bedd5dcaSJeremy L Thompson only: 25bedd5dcaSJeremy L Thompson refs: 26bedd5dcaSJeremy L Thompson - web 27bedd5dcaSJeremy L Thompson - merge_requests 28bedd5dcaSJeremy L Thompson - main 29bedd5dcaSJeremy L Thompson - release 30bedd5dcaSJeremy L Thompson except: 31bedd5dcaSJeremy L Thompson variables: 32bedd5dcaSJeremy L Thompson # Skip if the No-Code label is attached to a merge request (i.e., documentation only) 33bedd5dcaSJeremy L Thompson - $CI_MERGE_REQUEST_LABELS =~ /(^|,)No-Code($|,)/ 34bedd5dcaSJeremy L Thompson 35bedd5dcaSJeremy L Thompson.docs: 36bedd5dcaSJeremy L Thompson image: python:3.10 37bedd5dcaSJeremy L Thompson before_script: 38bedd5dcaSJeremy L Thompson - pip install -r doc/requirements.txt 39bedd5dcaSJeremy L Thompson - apt-get update 40bedd5dcaSJeremy L Thompson - apt-get install -y doxygen librsvg2-bin 41bedd5dcaSJeremy L Thompson 42bedd5dcaSJeremy L Thompson 43bedd5dcaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 44a06722ffSJames Wright# Test formatting 45a06722ffSJames Wright# ---------------------------------------------------------------------------------------- 46a06722ffSJames Wrightnoether-format: 47a06722ffSJames Wright stage: test:stage-lint 48a06722ffSJames Wright extends: 49a06722ffSJames Wright - .test-basic 50a06722ffSJames Wright tags: 51a06722ffSJames Wright - noether 52a06722ffSJames Wright - shell 53a06722ffSJames Wright script: 54a06722ffSJames Wright - rm -f .SUCCESS 55a06722ffSJames Wright - echo "-------------- make format ---------" && export CLANG_FORMAT=clang-format-15 && $CLANG_FORMAT --version 56a06722ffSJames Wright - make -j$NPROC_CPU format && git diff --color=always --exit-code 57b936e31aSJames Wright - echo "-------------- make checkbadSource ---------" 58b936e31aSJames Wright - make -j$NPROC_CPU checkbadSource 59a06722ffSJames Wright - touch .SUCCESS 60a06722ffSJames Wright 61a06722ffSJames Wright 62a06722ffSJames Wright# ---------------------------------------------------------------------------------------- 63a06722ffSJames Wright# Test static analysis 64bedd5dcaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 65bedd5dcaSJeremy L Thompsonnoether-lint: 66bedd5dcaSJeremy L Thompson stage: test:stage-lint 67bedd5dcaSJeremy L Thompson extends: .test 68bedd5dcaSJeremy L Thompson tags: 69bedd5dcaSJeremy L Thompson - noether 70bedd5dcaSJeremy L Thompson - shell 71bedd5dcaSJeremy L Thompson script: 72bedd5dcaSJeremy L Thompson - rm -f .SUCCESS 73bedd5dcaSJeremy L Thompson # Environment 7448969772SJames Wright - export CC=gcc 75bedd5dcaSJeremy L Thompson - echo "-------------- nproc ---------------" && NPROC_CPU=$(nproc) && NPROC_GPU=$(($(nproc)<8?$(nproc):8)) && echo "NPROC_CPU" $NPROC_CPU && echo "NPROC_GPU" $NPROC_GPU 76bedd5dcaSJeremy L Thompson - echo "-------------- CC ------------------" && $CC --version 77bedd5dcaSJeremy L Thompson # Libraries 78bedd5dcaSJeremy L Thompson # -- libCEED 79bedd5dcaSJeremy L Thompson - echo "-------------- libCEED -------------" 80bedd5dcaSJeremy L Thompson - export CEED_DIR=/projects/honee/libCEED && git -C $CEED_DIR -c safe.directory=$CEED_DIR describe && make -C $CEED_DIR info 81bedd5dcaSJeremy L Thompson # -- PETSc 82bedd5dcaSJeremy L Thompson - echo "-------------- PETSc ---------------" 83bedd5dcaSJeremy L Thompson - export PETSC_DIR=/projects/honee/petsc 8448969772SJames Wright - export PETSC_ARCH=arch-serial-cuda && git -C $PETSC_DIR -c safe.directory=$PETSC_DIR describe && make -C $PETSC_DIR info 85bedd5dcaSJeremy L Thompson - export PETSC_OPTIONS='-malloc_debug no' # faster tests 86bedd5dcaSJeremy L Thompson - export LD_LIBRARY_PATH=$PETSC_DIR/lib PATH="$PATH:$PETSC_DIR/bin" # cgnsdiff 87eeb6d35eSJames Wright - echo "-------------- HONEE ---------------" && make info 88bedd5dcaSJeremy L Thompson # make with Werror, Wall, supress loop vectorization warnings 89bedd5dcaSJeremy L Thompson - echo "-------------- make Werror ---------" 9074512b2dSJeremy L Thompson - PEDANTIC=1 PEDANTICFLAGS="-Werror -Wall -Wno-pass-failed" make -j$NPROC_CPU 91bedd5dcaSJeremy L Thompson # Clang-tidy 92bedd5dcaSJeremy L Thompson - echo "-------------- clang-tidy ----------" && export CLANG_TIDY=clang-tidy-15 && $CLANG_TIDY --version 9348969772SJames Wright - PETSC_ARCH=arch-serial-cuda make -j$NPROC_CPU tidy 94bedd5dcaSJeremy L Thompson # Report status 95bedd5dcaSJeremy L Thompson - touch .SUCCESS 96bedd5dcaSJeremy L Thompson 97bedd5dcaSJeremy L Thompson 98bedd5dcaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 99bedd5dcaSJeremy L Thompson# Test memory access assumptions 100bedd5dcaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 101bedd5dcaSJeremy L Thompsonnoether-memcheck: 102f27266cbSJeremy L Thompson stage: test:stage-lint 103bedd5dcaSJeremy L Thompson extends: .test 104bedd5dcaSJeremy L Thompson tags: 105bedd5dcaSJeremy L Thompson - noether 106bedd5dcaSJeremy L Thompson - shell 107bedd5dcaSJeremy L Thompson script: 108bedd5dcaSJeremy L Thompson - rm -f .SUCCESS 109bedd5dcaSJeremy L Thompson # Environment 110f7972399SJames Wright - export COVERAGE=1 CC=clang-15 111bedd5dcaSJeremy L Thompson - export NPROC_POOL=8 112bedd5dcaSJeremy L Thompson - echo "-------------- nproc ---------------" && NPROC_CPU=$(nproc) && NPROC_GPU=$(($(nproc)<8?$(nproc):8)) && echo "NPROC_CPU" $NPROC_CPU && echo "NPROC_GPU" $NPROC_GPU 113bedd5dcaSJeremy L Thompson - echo "-------------- CC ------------------" && $CC --version 114bedd5dcaSJeremy L Thompson # Libraries 115bedd5dcaSJeremy L Thompson # -- libCEED 116bedd5dcaSJeremy L Thompson - echo "-------------- libCEED -------------" 117bedd5dcaSJeremy L Thompson - export CEED_DIR=/projects/honee/libCEED-cpu && git -C $CEED_DIR -c safe.directory=$CEED_DIR describe && make -C $CEED_DIR info 118bedd5dcaSJeremy L Thompson # -- PETSc 119bedd5dcaSJeremy L Thompson - echo "-------------- PETSc ---------------" 120bedd5dcaSJeremy L Thompson - export PETSC_DIR=/projects/honee/petsc 121bedd5dcaSJeremy L Thompson - export PETSC_ARCH=arch-serial-cpu-clang && git -C $PETSC_DIR -c safe.directory=$PETSC_DIR describe && make -C $PETSC_DIR info 122bedd5dcaSJeremy L Thompson - export PETSC_OPTIONS='-malloc_debug no' # faster tests 123bedd5dcaSJeremy L Thompson - export LD_LIBRARY_PATH=$PETSC_DIR/lib PATH="$PATH:$PETSC_DIR/bin" # cgnsdiff 124eeb6d35eSJames Wright - echo "-------------- HONEE ---------------" && make info 125bedd5dcaSJeremy L Thompson # ASAN 126bedd5dcaSJeremy L Thompson - echo "-------------- ASAN ----------------" 1273d8c820bSJames Wright - export ASAN=1 AFLAGS="-fsanitize=address -fsanitize=leak" 128bedd5dcaSJeremy L Thompson - echo $AFLAGS 129bedd5dcaSJeremy L Thompson # HONEE 130bedd5dcaSJeremy L Thompson - echo "-------------- HONEE ---------------" && make info 131bedd5dcaSJeremy L Thompson - make clean 13274512b2dSJeremy L Thompson - make -j$NPROC_CPU 133bedd5dcaSJeremy L Thompson # Test suite 134bedd5dcaSJeremy L Thompson - echo "-------------- HONEE tests ---------" 135bedd5dcaSJeremy L Thompson - echo '[{"subject":"/","metrics":[{"name":"Transfer Size (KB)","value":"19.5","desiredSize":"smaller"},{"name":"Speed Index","value":0,"desiredSize":"smaller"},{"name":"Total Score","value":92,"desiredSize":"larger"},{"name":"Requests","value":4,"desiredSize":"smaller"}]}]' > performance.json 136bedd5dcaSJeremy L Thompson # -- Memcheck libCEED CPU backend, serial 137e97df35aSJeremy L Thompson - NPROC_TEST=1 make -k -j$((NPROC_CPU / NPROC_POOL)) CEED_BACKENDS="/cpu/self/memcheck" JUNIT_BATCH="cpu-serial-memcheck" junit search=navierstokes 138bedd5dcaSJeremy L Thompson # Report status 139bedd5dcaSJeremy L Thompson - touch .SUCCESS 140f7972399SJames Wright after_script: 141f7972399SJames Wright - | 142f7972399SJames Wright if [ -f .SUCCESS ]; then 143f7972399SJames Wright gcovr --gcov-executable "llvm-cov-15 gcov" --json-pretty --print-summary -o coverage-$CI_JOB_ID.json; 144f7972399SJames Wright fi 145bedd5dcaSJeremy L Thompson artifacts: 146bedd5dcaSJeremy L Thompson paths: 147f7972399SJames Wright - coverage-$CI_JOB_ID.json 148bedd5dcaSJeremy L Thompson - build/*.junit 149*da599986SJames Wright - build/test_failure_artifacts 150*da599986SJames Wright when: always 151bedd5dcaSJeremy L Thompson reports: 152bedd5dcaSJeremy L Thompson junit: build/*.junit 153bedd5dcaSJeremy L Thompson performance: performance.json 154bedd5dcaSJeremy L Thompson expire_in: 28 days 155bedd5dcaSJeremy L Thompson 156bedd5dcaSJeremy L Thompson 157bedd5dcaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 158bedd5dcaSJeremy L Thompson# CPU testing on Noether 159bedd5dcaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 160bedd5dcaSJeremy L Thompsonnoether-cpu: 161f27266cbSJeremy L Thompson stage: test:stage-full 162bedd5dcaSJeremy L Thompson extends: .test 163bedd5dcaSJeremy L Thompson tags: 164bedd5dcaSJeremy L Thompson - noether 165bedd5dcaSJeremy L Thompson - shell 166bedd5dcaSJeremy L Thompson script: 167bedd5dcaSJeremy L Thompson - rm -f .SUCCESS 168bedd5dcaSJeremy L Thompson # Environment 169c3a3f305SJeremy L Thompson - export COVERAGE=1 CC=gcc 170bedd5dcaSJeremy L Thompson - export NPROC_POOL=4 171bedd5dcaSJeremy L Thompson - echo "-------------- nproc ---------------" && NPROC_CPU=$(nproc) && NPROC_GPU=$(($(nproc)<8?$(nproc):8)) && echo "NPROC_CPU" $NPROC_CPU && echo "NPROC_GPU" $NPROC_GPU 172bedd5dcaSJeremy L Thompson - echo "-------------- CC ------------------" && $CC --version 173bedd5dcaSJeremy L Thompson - echo "-------------- GCOV ----------------" && gcov --version 174bedd5dcaSJeremy L Thompson # Libraries 175bedd5dcaSJeremy L Thompson # -- libCEED 176bedd5dcaSJeremy L Thompson - echo "-------------- libCEED -------------" 177bedd5dcaSJeremy L Thompson - export CEED_DIR=/projects/honee/libCEED && git -C $CEED_DIR -c safe.directory=$CEED_DIR describe && make -C $CEED_DIR info 178bedd5dcaSJeremy L Thompson # -- PETSc 179bedd5dcaSJeremy L Thompson - echo "-------------- PETSc ---------------" 180bedd5dcaSJeremy L Thompson - export PETSC_DIR=/projects/honee/petsc 18148969772SJames Wright - export PETSC_ARCH=arch-parallel-cuda && git -C $PETSC_DIR -c safe.directory=$PETSC_DIR describe && make -C $PETSC_DIR info 182bedd5dcaSJeremy L Thompson - export PETSC_OPTIONS='-malloc_debug no' # faster tests 183bedd5dcaSJeremy L Thompson - export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib PATH="$PATH:$PETSC_DIR/$PETSC_ARCH/bin" # cgnsdiff 184bedd5dcaSJeremy L Thompson # HONEE 185bedd5dcaSJeremy L Thompson - echo "-------------- HONEE ---------------" && make info 186bedd5dcaSJeremy L Thompson - make clean 18774512b2dSJeremy L Thompson - make -j$NPROC_CPU 188bedd5dcaSJeremy L Thompson # Test suite 189bedd5dcaSJeremy L Thompson - echo "-------------- HONEE tests ---------" 190bedd5dcaSJeremy L Thompson - echo '[{"subject":"/","metrics":[{"name":"Transfer Size (KB)","value":"19.5","desiredSize":"smaller"},{"name":"Speed Index","value":0,"desiredSize":"smaller"},{"name":"Total Score","value":92,"desiredSize":"larger"},{"name":"Requests","value":4,"desiredSize":"smaller"}]}]' > performance.json 191bedd5dcaSJeremy L Thompson # -- Fastest libCEED CPU backend, parallel 192a447840aSJeremy L Thompson - echo "Parallel tests skipped for now" 193fb4d37b9SJames Wright # - source /home/phypid/spack/share/spack/setup-env.sh && spack load py-torch@2.3+cuda && export USE_TORCH=1 19448969772SJames Wright - export SMARTREDIS_DIR=/projects/honee/SmartSim/smartredis/install 195869763b2SJeremy L Thompson - NPROC_TEST=1 make -k -j$((NPROC_CPU / NPROC_POOL / 1)) CEED_BACKENDS="/cpu/self" JUNIT_BATCH="cpu-serial" junit search=navierstokes 196fb4d37b9SJames Wright # - spack unload py-torch@2.3+cuda && export USE_TORCH=0 19748969772SJames Wright - source /projects/honee/SmartSim/venv/bin/activate 19867f3e659SJames Wright - NPROC_TEST=1 make -k -j$((NPROC_CPU / NPROC_POOL / 1)) CEED_BACKENDS="/cpu/self" JUNIT_BATCH="cpu-serial" junit search="test-smartsim" 199bedd5dcaSJeremy L Thompson # Report status 200bedd5dcaSJeremy L Thompson - touch .SUCCESS 201bedd5dcaSJeremy L Thompson after_script: 202bedd5dcaSJeremy L Thompson - | 203bedd5dcaSJeremy L Thompson if [ -f .SUCCESS ]; then 204f7972399SJames Wright gcovr --gcov-executable "llvm-cov-15 gcov" --json-pretty --print-summary -o coverage-$CI_JOB_ID.json; 205bedd5dcaSJeremy L Thompson fi 206bedd5dcaSJeremy L Thompson artifacts: 207bedd5dcaSJeremy L Thompson paths: 208f7972399SJames Wright - coverage-$CI_JOB_ID.json 209bedd5dcaSJeremy L Thompson - build/*.junit 210*da599986SJames Wright - build/test_failure_artifacts 211*da599986SJames Wright when: always 212bedd5dcaSJeremy L Thompson reports: 213bedd5dcaSJeremy L Thompson junit: build/*.junit 214bedd5dcaSJeremy L Thompson performance: performance.json 215bedd5dcaSJeremy L Thompson expire_in: 28 days 216bedd5dcaSJeremy L Thompson 217bedd5dcaSJeremy L Thompson 218bedd5dcaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 21904c6cceaSJeremy L Thompson# CPU Int64 testing on Noether 22004c6cceaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 22104c6cceaSJeremy L Thompsonnoether-cpu-int64: 22204c6cceaSJeremy L Thompson stage: test:stage-full 22304c6cceaSJeremy L Thompson extends: .test 22404c6cceaSJeremy L Thompson tags: 22504c6cceaSJeremy L Thompson - noether 22604c6cceaSJeremy L Thompson - shell 22704c6cceaSJeremy L Thompson script: 22804c6cceaSJeremy L Thompson - rm -f .SUCCESS 22904c6cceaSJeremy L Thompson # Environment 230c3a3f305SJeremy L Thompson - export COVERAGE=1 CC=gcc 23104c6cceaSJeremy L Thompson - export NPROC_POOL=4 23204c6cceaSJeremy L Thompson - echo "-------------- nproc ---------------" && NPROC_CPU=$(nproc) && NPROC_GPU=$(($(nproc)<8?$(nproc):8)) && echo "NPROC_CPU" $NPROC_CPU && echo "NPROC_GPU" $NPROC_GPU 23304c6cceaSJeremy L Thompson - echo "-------------- CC ------------------" && $CC --version 23404c6cceaSJeremy L Thompson - echo "-------------- GCOV ----------------" && gcov --version 23504c6cceaSJeremy L Thompson # Libraries 23604c6cceaSJeremy L Thompson # -- libCEED 23704c6cceaSJeremy L Thompson - echo "-------------- libCEED -------------" 23804c6cceaSJeremy L Thompson - export CEED_DIR=/projects/honee/libCEED && git -C $CEED_DIR -c safe.directory=$CEED_DIR describe && make -C $CEED_DIR info 23904c6cceaSJeremy L Thompson # -- PETSc 24004c6cceaSJeremy L Thompson - echo "-------------- PETSc ---------------" 24104c6cceaSJeremy L Thompson - export PETSC_DIR=/projects/honee/petsc 24204c6cceaSJeremy L Thompson - export PETSC_ARCH=arch-serial-cpu-int64 && git -C $PETSC_DIR -c safe.directory=$PETSC_DIR describe && make -C $PETSC_DIR info 24304c6cceaSJeremy L Thompson - export PETSC_OPTIONS='-malloc_debug no' # faster tests 24404c6cceaSJeremy L Thompson - export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib PATH="$PATH:$PETSC_DIR/$PETSC_ARCH/bin" # cgnsdiff 24504c6cceaSJeremy L Thompson # HONEE 24604c6cceaSJeremy L Thompson - echo "-------------- HONEE ---------------" && make info 24704c6cceaSJeremy L Thompson - make clean 24804c6cceaSJeremy L Thompson - make -j$NPROC_CPU 24904c6cceaSJeremy L Thompson # Test suite 25004c6cceaSJeremy L Thompson - echo "-------------- HONEE tests ---------" 25104c6cceaSJeremy L Thompson - echo '[{"subject":"/","metrics":[{"name":"Transfer Size (KB)","value":"19.5","desiredSize":"smaller"},{"name":"Speed Index","value":0,"desiredSize":"smaller"},{"name":"Total Score","value":92,"desiredSize":"larger"},{"name":"Requests","value":4,"desiredSize":"smaller"}]}]' > performance.json 25204c6cceaSJeremy L Thompson # -- Fastest libCEED CPU backend, serial 253fb4d37b9SJames Wright # - source /home/phypid/spack/share/spack/setup-env.sh && spack load py-torch@2.3+cuda && export USE_TORCH=1 25448969772SJames Wright - export SMARTREDIS_DIR=/projects/honee/SmartSim/smartredis/install 25504c6cceaSJeremy L Thompson - NPROC_TEST=1 make -k -j$((NPROC_CPU / NPROC_POOL / 1)) CEED_BACKENDS="/cpu/self" JUNIT_BATCH="cpu-serial-int64" junit search=navierstokes 256fb4d37b9SJames Wright # - spack unload py-torch@2.3+cuda && export USE_TORCH=0 25738fc66b1SJames Wright - source /projects/honee/SmartSim/venv/bin/activate 25838fc66b1SJames Wright - NPROC_TEST=1 make -k -j$((NPROC_CPU / NPROC_POOL / 1)) CEED_BACKENDS="/cpu/self" JUNIT_BATCH="cpu-serial-int64" junit search="test-smartsim" 25904c6cceaSJeremy L Thompson # Report status 26004c6cceaSJeremy L Thompson - touch .SUCCESS 26104c6cceaSJeremy L Thompson after_script: 26204c6cceaSJeremy L Thompson - | 26304c6cceaSJeremy L Thompson if [ -f .SUCCESS ]; then 264f7972399SJames Wright gcovr --gcov-executable "llvm-cov-15 gcov" --json-pretty --print-summary -o coverage-$CI_JOB_ID.json; 26504c6cceaSJeremy L Thompson fi 26604c6cceaSJeremy L Thompson artifacts: 26704c6cceaSJeremy L Thompson paths: 268f7972399SJames Wright - coverage-$CI_JOB_ID.json 26904c6cceaSJeremy L Thompson - build/*.junit 270*da599986SJames Wright - build/test_failure_artifacts 271*da599986SJames Wright when: always 27204c6cceaSJeremy L Thompson reports: 27304c6cceaSJeremy L Thompson junit: build/*.junit 27404c6cceaSJeremy L Thompson performance: performance.json 27504c6cceaSJeremy L Thompson expire_in: 28 days 27604c6cceaSJeremy L Thompson 27704c6cceaSJeremy L Thompson 278342f6305SJames Wright#### Disable HIP temporarily 279342f6305SJames Wright 280342f6305SJames Wright# # ---------------------------------------------------------------------------------------- 281342f6305SJames Wright# # GPU testing on Noether 282342f6305SJames Wright# # ---------------------------------------------------------------------------------------- 283342f6305SJames Wright# noether-hip: 284342f6305SJames Wright# stage: test:stage-full 285342f6305SJames Wright# extends: .test 286342f6305SJames Wright# tags: 287342f6305SJames Wright# - noether 288342f6305SJames Wright# - shell 289342f6305SJames Wright# script: 290342f6305SJames Wright# - rm -f .SUCCESS 291342f6305SJames Wright# # Environment 292342f6305SJames Wright# - export COVERAGE=1 CC=gcc HIPCC=hipcc 293342f6305SJames Wright# - export NPROC_POOL=4 294342f6305SJames Wright# - echo "-------------- nproc ---------------" && NPROC_CPU=$(nproc) && NPROC_GPU=$(($(nproc)<8?$(nproc):8)) && echo "NPROC_CPU" $NPROC_CPU && echo "NPROC_GPU" $NPROC_GPU 295342f6305SJames Wright# - echo "-------------- CC ------------------" && $CC --version 296342f6305SJames Wright# - echo "-------------- HIPCC ---------------" && $HIPCC --version && export HIP_DIR=/opt/rocm 297342f6305SJames Wright# - echo "-------------- GCOV ----------------" && gcov --version 298342f6305SJames Wright# # Libraries 299342f6305SJames Wright# # -- libCEED 300342f6305SJames Wright# - echo "-------------- libCEED -------------" 301342f6305SJames Wright# - export CEED_DIR=/projects/honee/libCEED && git -C $CEED_DIR -c safe.directory=$CEED_DIR describe && make -C $CEED_DIR info 302342f6305SJames Wright# # -- PETSc 303342f6305SJames Wright# - echo "-------------- PETSc ---------------" 304342f6305SJames Wright# - export PETSC_DIR=/projects/honee/petsc 305342f6305SJames Wright# - export PETSC_ARCH=arch-parallel-hip && git -C $PETSC_DIR -c safe.directory=$PETSC_DIR describe && make -C $PETSC_DIR info 306342f6305SJames Wright# - export PETSC_OPTIONS='-malloc_debug no' # faster tests 307342f6305SJames Wright# - export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib PATH="$PATH:$PETSC_DIR/$PETSC_ARCH/bin" # cgnsdiff 308342f6305SJames Wright# # HONEE 309342f6305SJames Wright# - echo "-------------- HONEE ---------------" && make info 310342f6305SJames Wright# - make clean 311342f6305SJames Wright# - make -j$NPROC_CPU 312342f6305SJames Wright# # Test suite 313342f6305SJames Wright# - echo "-------------- HONEE tests ---------" 314342f6305SJames Wright# - echo '[{"subject":"/","metrics":[{"name":"Transfer Size (KB)","value":"19.5","desiredSize":"smaller"},{"name":"Speed Index","value":0,"desiredSize":"smaller"},{"name":"Total Score","value":92,"desiredSize":"larger"},{"name":"Requests","value":4,"desiredSize":"smaller"}]}]' > performance.json 315342f6305SJames Wright# # -- Fastest libCEED HIP backend, serial 316342f6305SJames Wright# # Note: /shared is faster due to /gen JiT time for CeedOperators overwhelming runtime improvements at these problem sizes 317342f6305SJames Wright# - NPROC_TEST=1 make -k -j$((NPROC_GPU / NPROC_POOL / 1)) CEED_BACKENDS="/gpu/hip/shared" JUNIT_BATCH="hip-serial" junit search=navierstokes 318342f6305SJames Wright# # Report status 319342f6305SJames Wright# - touch .SUCCESS 320342f6305SJames Wright# after_script: 321342f6305SJames Wright# - | 322342f6305SJames Wright# if [ -f .SUCCESS ]; then 323342f6305SJames Wright# gcovr --xml-pretty --exclude-lines-by-pattern '^\s*SETERR.*' --exclude-unreachable-branches --print-summary -o coverage.xml; 324342f6305SJames Wright# fi 325f7972399SJames Wright# after_script: 326f7972399SJames Wright# - | 327f7972399SJames Wright# if [ -f .SUCCESS ]; then 328f7972399SJames Wright# gcovr --gcov-executable "llvm-cov-15 gcov" --json-pretty --print-summary -o coverage-$CI_JOB_ID.json; 329f7972399SJames Wright# fi 330342f6305SJames Wright# artifacts: 331342f6305SJames Wright# paths: 332f7972399SJames Wright# - coverage-$CI_JOB_ID.json 333342f6305SJames Wright# - build/*.junit 334*da599986SJames Wright# - build/test_failure_artifacts 335*da599986SJames Wright# when: always 336342f6305SJames Wright# reports: 337342f6305SJames Wright# junit: build/*.junit 338342f6305SJames Wright# performance: performance.json 339342f6305SJames Wright# expire_in: 28 days 340a3c4661bSJames Wright 341a3c4661bSJames Wright 3420241eab6SJeremy L Thompsonnoether-cuda: 3430241eab6SJeremy L Thompson stage: test:stage-full 3440241eab6SJeremy L Thompson extends: .test 3450241eab6SJeremy L Thompson tags: 3460241eab6SJeremy L Thompson - noether 3470241eab6SJeremy L Thompson - shell 3480241eab6SJeremy L Thompson script: 3490241eab6SJeremy L Thompson - rm -f .SUCCESS 3500241eab6SJeremy L Thompson # Environment 3510241eab6SJeremy L Thompson - export COVERAGE=1 CC=gcc NVCC=nvcc 3520241eab6SJeremy L Thompson - export NPROC_POOL=4 3530241eab6SJeremy L Thompson - echo "-------------- nproc ---------------" && NPROC_CPU=$(nproc) && NPROC_GPU=$(($(nproc)<8?$(nproc):8)) && echo "NPROC_CPU" $NPROC_CPU && echo "NPROC_GPU" $NPROC_GPU 3540241eab6SJeremy L Thompson - echo "-------------- CC ------------------" && $CC --version 3550241eab6SJeremy L Thompson - echo "-------------- NVCC ----------------" && $NVCC --version 3560241eab6SJeremy L Thompson - echo "-------------- GCOV ----------------" && gcov --version 3570241eab6SJeremy L Thompson # Libraries 3580241eab6SJeremy L Thompson # -- libCEED 3590241eab6SJeremy L Thompson - echo "-------------- libCEED -------------" 3600241eab6SJeremy L Thompson - export CEED_DIR=/projects/honee/libCEED && git -C $CEED_DIR -c safe.directory=$CEED_DIR describe && make -C $CEED_DIR info 3610241eab6SJeremy L Thompson # -- PETSc 3620241eab6SJeremy L Thompson - echo "-------------- PETSc ---------------" 3630241eab6SJeremy L Thompson - export PETSC_DIR=/projects/honee/petsc 3640241eab6SJeremy L Thompson - export PETSC_ARCH=arch-parallel-cuda && git -C $PETSC_DIR -c safe.directory=$PETSC_DIR describe && make -C $PETSC_DIR info 3650241eab6SJeremy L Thompson - export PETSC_OPTIONS='-malloc_debug no -use_gpu_aware_mpi 0' # faster tests 3660241eab6SJeremy L Thompson - export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib PATH="$PATH:$PETSC_DIR/$PETSC_ARCH/bin" # cgnsdiff 3670241eab6SJeremy L Thompson # HONEE 3680241eab6SJeremy L Thompson - echo "-------------- HONEE ---------------" && make info 3690241eab6SJeremy L Thompson - make clean 3700241eab6SJeremy L Thompson - make -j$NPROC_CPU 3710241eab6SJeremy L Thompson # Test suite 3720241eab6SJeremy L Thompson - echo "-------------- HONEE tests ---------" 3730241eab6SJeremy L Thompson - echo '[{"subject":"/","metrics":[{"name":"Transfer Size (KB)","value":"19.5","desiredSize":"smaller"},{"name":"Speed Index","value":0,"desiredSize":"smaller"},{"name":"Total Score","value":92,"desiredSize":"larger"},{"name":"Requests","value":4,"desiredSize":"smaller"}]}]' > performance.json 3740241eab6SJeremy L Thompson # -- Fastest libCEED CUDA backend, serial 3750241eab6SJeremy L Thompson # Note: /shared is faster due to /gen JiT time for CeedOperators overwhelming runtime improvements at these problem sizes 376fb4d37b9SJames Wright # - source /home/phypid/spack/share/spack/setup-env.sh && spack load py-torch@2.3+cuda && export USE_TORCH=1 3770241eab6SJeremy L Thompson - NPROC_TEST=1 make -k -j$((NPROC_GPU / NPROC_POOL / 1)) CEED_BACKENDS="/gpu/cuda/shared" JUNIT_BATCH="cuda-serial" junit search=navierstokes 3780241eab6SJeremy L Thompson # Report status 3790241eab6SJeremy L Thompson - touch .SUCCESS 3800241eab6SJeremy L Thompson after_script: 3810241eab6SJeremy L Thompson - | 3820241eab6SJeremy L Thompson if [ -f .SUCCESS ]; then 383f7972399SJames Wright gcovr --gcov-executable "llvm-cov-15 gcov" --json-pretty --print-summary -o coverage-$CI_JOB_ID.json; 3840241eab6SJeremy L Thompson fi 385f7972399SJames Wright artifacts: 386f7972399SJames Wright paths: 387f7972399SJames Wright - coverage-$CI_JOB_ID.json 388f7972399SJames Wright - build/*.junit 389*da599986SJames Wright - build/test_failure_artifacts 390*da599986SJames Wright when: always 391f7972399SJames Wright reports: 392f7972399SJames Wright junit: build/*.junit 393f7972399SJames Wright performance: performance.json 394f7972399SJames Wright expire_in: 28 days 395f7972399SJames Wright 396f7972399SJames Wright 397f7972399SJames Wrighttest-coverage: 398f7972399SJames Wright stage: test:post 399f7972399SJames Wright extends: .test 400f7972399SJames Wright tags: 401f7972399SJames Wright - noether 402f7972399SJames Wright - shell 403f7972399SJames Wright when: always 404f7972399SJames Wright needs: [noether-memcheck, noether-cpu, noether-cpu-int64, noether-cuda, ] 405f7972399SJames Wright script: 406f7972399SJames Wright - ls coverage-* 407f7972399SJames Wright - mkdir coverage 408f7972399SJames Wright - gcovr --json-add-tracefile "coverage-*.json" --xml-pretty -o coverage.xml --print-summary --html-nested coverage/index.html --html-theme github.dark-blue 4090241eab6SJeremy L Thompson coverage: '/^lines:\s+(\d+.\d\%)/' 4100241eab6SJeremy L Thompson artifacts: 4110241eab6SJeremy L Thompson paths: 4120241eab6SJeremy L Thompson - coverage.xml 413f7972399SJames Wright - coverage 414f7972399SJames Wright when: always 4150241eab6SJeremy L Thompson reports: 4160241eab6SJeremy L Thompson coverage_report: 4170241eab6SJeremy L Thompson coverage_format: cobertura 4180241eab6SJeremy L Thompson path: coverage.xml 4190241eab6SJeremy L Thompson expire_in: 28 days 420f7972399SJames Wright environment: 421f7972399SJames Wright name: coverage/$CI_COMMIT_REF_NAME 422f7972399SJames Wright url: https://$CI_PROJECT_NAMESPACE.gitlab.io/-/$CI_PROJECT_NAME/-/jobs/$CI_JOB_ID/artifacts/coverage/index.html 4230241eab6SJeremy L Thompson 4240241eab6SJeremy L Thompson 425a3c4661bSJames Wright# ---------------------------------------------------------------------------------------- 426a3c4661bSJames Wright# Build documentation 427a3c4661bSJames Wright# ---------------------------------------------------------------------------------------- 428a3c4661bSJames Wrightdocs-review: 429a3c4661bSJames Wright stage: test:docs 430a3c4661bSJames Wright tags: 431a3c4661bSJames Wright - noether 432a3c4661bSJames Wright - docker 433a3c4661bSJames Wright extends: 434a3c4661bSJames Wright - .docs 435a3c4661bSJames Wright - .test-basic 436a3c4661bSJames Wright interruptible: true 437a3c4661bSJames Wright script: 43848969772SJames Wright - export PETSC_DIR=/projects/honee/petsc PETSC_ARCH=arch-parallel-cuda CEED_DIR=/projects/honee/libCEED 4393ff588abSJames Wright - git -c safe.directory=/builds/phypid/honee submodule update --init 440a3c4661bSJames Wright - make doc-html pkgconf=true DOXYGENOPTS= SPHINXOPTS=-W 441a3c4661bSJames Wright - mv doc/build/html public 442a3c4661bSJames Wright artifacts: 443a3c4661bSJames Wright paths: 444a3c4661bSJames Wright - public 445a3c4661bSJames Wright expire_in: 28 days 446a3c4661bSJames Wright environment: 447a3c4661bSJames Wright name: review/$CI_COMMIT_REF_NAME 448a3c4661bSJames Wright url: https://$CI_PROJECT_NAMESPACE.gitlab.io/-/$CI_PROJECT_NAME/-/jobs/$CI_JOB_ID/artifacts/public/index.html 449a3c4661bSJames Wright 450a3c4661bSJames Wright 451a3c4661bSJames Wright# ---------------------------------------------------------------------------------------- 452a3c4661bSJames Wright# Deploy documentation using GitLab pages 453a3c4661bSJames Wright# ---------------------------------------------------------------------------------------- 454a3c4661bSJames Wrightpages: # this job name has special meaning to GitLab 455a3c4661bSJames Wright stage: deploy 456a3c4661bSJames Wright tags: 457a3c4661bSJames Wright - noether 458a3c4661bSJames Wright - docker 459a3c4661bSJames Wright extends: .docs 460a3c4661bSJames Wright interruptible: false 461a3c4661bSJames Wright script: 4623ff588abSJames Wright - git -c safe.directory=/builds/phypid/honee submodule update --init 463a3c4661bSJames Wright - make doc-dirhtml pkgconf=true DOXYGENOPTS= 464a3c4661bSJames Wright - mv doc/build/dirhtml public 465a3c4661bSJames Wright only: 466a3c4661bSJames Wright - main 467a3c4661bSJames Wright artifacts: 468a3c4661bSJames Wright paths: 469a3c4661bSJames Wright - public 470