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 7a3c4661bSJames Wright - test:docs 8a3c4661bSJames Wright - deploy 9bedd5dcaSJeremy L Thompson 10494078cdSJames Wrightworkflow: 11494078cdSJames Wright auto_cancel: 12494078cdSJames Wright on_job_failure: all 13494078cdSJames Wright 14bedd5dcaSJeremy L Thompson.test-basic: 15bedd5dcaSJeremy L Thompson interruptible: true 16bedd5dcaSJeremy L Thompson only: 17bedd5dcaSJeremy L Thompson refs: 18bedd5dcaSJeremy L Thompson - web 19bedd5dcaSJeremy L Thompson - merge_requests 20bedd5dcaSJeremy L Thompson 21bedd5dcaSJeremy L Thompson.test: 22bedd5dcaSJeremy L Thompson extends: .test-basic 23bedd5dcaSJeremy L Thompson only: 24bedd5dcaSJeremy L Thompson refs: 25bedd5dcaSJeremy L Thompson - web 26bedd5dcaSJeremy L Thompson - merge_requests 27bedd5dcaSJeremy L Thompson - main 28bedd5dcaSJeremy L Thompson - release 29bedd5dcaSJeremy L Thompson except: 30bedd5dcaSJeremy L Thompson variables: 31bedd5dcaSJeremy L Thompson # Skip if the No-Code label is attached to a merge request (i.e., documentation only) 32bedd5dcaSJeremy L Thompson - $CI_MERGE_REQUEST_LABELS =~ /(^|,)No-Code($|,)/ 33bedd5dcaSJeremy L Thompson 34bedd5dcaSJeremy L Thompson.docs: 35bedd5dcaSJeremy L Thompson image: python:3.10 36bedd5dcaSJeremy L Thompson before_script: 37bedd5dcaSJeremy L Thompson - pip install -r doc/requirements.txt 38bedd5dcaSJeremy L Thompson - apt-get update 39bedd5dcaSJeremy L Thompson - apt-get install -y doxygen librsvg2-bin 40bedd5dcaSJeremy L Thompson 41bedd5dcaSJeremy L Thompson 42bedd5dcaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 43a06722ffSJames Wright# Test formatting 44a06722ffSJames Wright# ---------------------------------------------------------------------------------------- 45a06722ffSJames Wrightnoether-format: 46a06722ffSJames Wright stage: test:stage-lint 47a06722ffSJames Wright extends: 48a06722ffSJames Wright - .test-basic 49a06722ffSJames Wright tags: 50a06722ffSJames Wright - noether 51a06722ffSJames Wright - shell 52a06722ffSJames Wright script: 53a06722ffSJames Wright - rm -f .SUCCESS 54a06722ffSJames Wright - echo "-------------- make format ---------" && export CLANG_FORMAT=clang-format-15 && $CLANG_FORMAT --version 55a06722ffSJames Wright - make -j$NPROC_CPU format && git diff --color=always --exit-code 56a06722ffSJames Wright - touch .SUCCESS 57a06722ffSJames Wright 58a06722ffSJames Wright 59a06722ffSJames Wright# ---------------------------------------------------------------------------------------- 60a06722ffSJames Wright# Test static analysis 61bedd5dcaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 62bedd5dcaSJeremy L Thompsonnoether-lint: 63bedd5dcaSJeremy L Thompson stage: test:stage-lint 64bedd5dcaSJeremy L Thompson extends: .test 65bedd5dcaSJeremy L Thompson tags: 66bedd5dcaSJeremy L Thompson - noether 67bedd5dcaSJeremy L Thompson - shell 68bedd5dcaSJeremy L Thompson script: 69bedd5dcaSJeremy L Thompson - rm -f .SUCCESS 70bedd5dcaSJeremy L Thompson # Environment 7148969772SJames Wright - export CC=gcc 72bedd5dcaSJeremy L Thompson - echo "-------------- nproc ---------------" && NPROC_CPU=$(nproc) && NPROC_GPU=$(($(nproc)<8?$(nproc):8)) && echo "NPROC_CPU" $NPROC_CPU && echo "NPROC_GPU" $NPROC_GPU 73bedd5dcaSJeremy L Thompson - echo "-------------- CC ------------------" && $CC --version 74bedd5dcaSJeremy L Thompson # Libraries 75bedd5dcaSJeremy L Thompson # -- libCEED 76bedd5dcaSJeremy L Thompson - echo "-------------- libCEED -------------" 77bedd5dcaSJeremy L Thompson - export CEED_DIR=/projects/honee/libCEED && git -C $CEED_DIR -c safe.directory=$CEED_DIR describe && make -C $CEED_DIR info 78bedd5dcaSJeremy L Thompson # -- PETSc 79bedd5dcaSJeremy L Thompson - echo "-------------- PETSc ---------------" 80bedd5dcaSJeremy L Thompson - export PETSC_DIR=/projects/honee/petsc 8148969772SJames Wright - export PETSC_ARCH=arch-serial-cuda && git -C $PETSC_DIR -c safe.directory=$PETSC_DIR describe && make -C $PETSC_DIR info 82bedd5dcaSJeremy L Thompson - export PETSC_OPTIONS='-malloc_debug no' # faster tests 83bedd5dcaSJeremy L Thompson - export LD_LIBRARY_PATH=$PETSC_DIR/lib PATH="$PATH:$PETSC_DIR/bin" # cgnsdiff 84bedd5dcaSJeremy L Thompson # make with Werror, Wall, supress loop vectorization warnings 85bedd5dcaSJeremy L Thompson - echo "-------------- make Werror ---------" 8674512b2dSJeremy L Thompson - PEDANTIC=1 PEDANTICFLAGS="-Werror -Wall -Wno-pass-failed" make -j$NPROC_CPU 87bedd5dcaSJeremy L Thompson # Clang-tidy 88bedd5dcaSJeremy L Thompson - echo "-------------- clang-tidy ----------" && export CLANG_TIDY=clang-tidy-15 && $CLANG_TIDY --version 8948969772SJames Wright - PETSC_ARCH=arch-serial-cuda make -j$NPROC_CPU tidy 90bedd5dcaSJeremy L Thompson # Report status 91bedd5dcaSJeremy L Thompson - touch .SUCCESS 92bedd5dcaSJeremy L Thompson 93bedd5dcaSJeremy L Thompson 94bedd5dcaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 95bedd5dcaSJeremy L Thompson# Test memory access assumptions 96bedd5dcaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 97bedd5dcaSJeremy L Thompsonnoether-memcheck: 98f27266cbSJeremy L Thompson stage: test:stage-lint 99bedd5dcaSJeremy L Thompson extends: .test 100bedd5dcaSJeremy L Thompson tags: 101bedd5dcaSJeremy L Thompson - noether 102bedd5dcaSJeremy L Thompson - shell 103bedd5dcaSJeremy L Thompson script: 104bedd5dcaSJeremy L Thompson - rm -f .SUCCESS 105bedd5dcaSJeremy L Thompson # Environment 106bedd5dcaSJeremy L Thompson # -- NOTE: Coverage disabled because it doesn't play nice with the ASAN options 107bedd5dcaSJeremy L Thompson - export CC=clang-15 108bedd5dcaSJeremy L Thompson - export NPROC_POOL=8 109bedd5dcaSJeremy L Thompson - echo "-------------- nproc ---------------" && NPROC_CPU=$(nproc) && NPROC_GPU=$(($(nproc)<8?$(nproc):8)) && echo "NPROC_CPU" $NPROC_CPU && echo "NPROC_GPU" $NPROC_GPU 110bedd5dcaSJeremy L Thompson - echo "-------------- CC ------------------" && $CC --version 111bedd5dcaSJeremy L Thompson # Libraries 112bedd5dcaSJeremy L Thompson # -- libCEED 113bedd5dcaSJeremy L Thompson - echo "-------------- libCEED -------------" 114bedd5dcaSJeremy L Thompson - export CEED_DIR=/projects/honee/libCEED-cpu && git -C $CEED_DIR -c safe.directory=$CEED_DIR describe && make -C $CEED_DIR info 115bedd5dcaSJeremy L Thompson # -- PETSc 116bedd5dcaSJeremy L Thompson - echo "-------------- PETSc ---------------" 117bedd5dcaSJeremy L Thompson - export PETSC_DIR=/projects/honee/petsc 118bedd5dcaSJeremy L Thompson - export PETSC_ARCH=arch-serial-cpu-clang && git -C $PETSC_DIR -c safe.directory=$PETSC_DIR describe && make -C $PETSC_DIR info 119bedd5dcaSJeremy L Thompson - export PETSC_OPTIONS='-malloc_debug no' # faster tests 120bedd5dcaSJeremy L Thompson - export LD_LIBRARY_PATH=$PETSC_DIR/lib PATH="$PATH:$PETSC_DIR/bin" # cgnsdiff 121bedd5dcaSJeremy L Thompson # ASAN 122bedd5dcaSJeremy L Thompson - echo "-------------- ASAN ----------------" 1233d8c820bSJames Wright - export ASAN=1 AFLAGS="-fsanitize=address -fsanitize=leak" 124bedd5dcaSJeremy L Thompson - echo $AFLAGS 125bedd5dcaSJeremy L Thompson # HONEE 126bedd5dcaSJeremy L Thompson - echo "-------------- HONEE ---------------" && make info 127bedd5dcaSJeremy L Thompson - make clean 12874512b2dSJeremy L Thompson - make -j$NPROC_CPU 129bedd5dcaSJeremy L Thompson # Test suite 130bedd5dcaSJeremy L Thompson - echo "-------------- HONEE tests ---------" 131bedd5dcaSJeremy 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 132bedd5dcaSJeremy L Thompson # -- Memcheck libCEED CPU backend, serial 133e97df35aSJeremy 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 134bedd5dcaSJeremy L Thompson # Report status 135bedd5dcaSJeremy L Thompson - touch .SUCCESS 136bedd5dcaSJeremy L Thompson artifacts: 137bedd5dcaSJeremy L Thompson paths: 138bedd5dcaSJeremy L Thompson - build/*.junit 139bedd5dcaSJeremy L Thompson reports: 140bedd5dcaSJeremy L Thompson junit: build/*.junit 141bedd5dcaSJeremy L Thompson performance: performance.json 142bedd5dcaSJeremy L Thompson expire_in: 28 days 143bedd5dcaSJeremy L Thompson 144bedd5dcaSJeremy L Thompson 145bedd5dcaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 146bedd5dcaSJeremy L Thompson# CPU testing on Noether 147bedd5dcaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 148bedd5dcaSJeremy L Thompsonnoether-cpu: 149f27266cbSJeremy L Thompson stage: test:stage-full 150bedd5dcaSJeremy L Thompson extends: .test 151bedd5dcaSJeremy L Thompson tags: 152bedd5dcaSJeremy L Thompson - noether 153bedd5dcaSJeremy L Thompson - shell 154bedd5dcaSJeremy L Thompson script: 155bedd5dcaSJeremy L Thompson - rm -f .SUCCESS 156bedd5dcaSJeremy L Thompson # Environment 157c3a3f305SJeremy L Thompson - export COVERAGE=1 CC=gcc 158bedd5dcaSJeremy L Thompson - export NPROC_POOL=4 159bedd5dcaSJeremy L Thompson - echo "-------------- nproc ---------------" && NPROC_CPU=$(nproc) && NPROC_GPU=$(($(nproc)<8?$(nproc):8)) && echo "NPROC_CPU" $NPROC_CPU && echo "NPROC_GPU" $NPROC_GPU 160bedd5dcaSJeremy L Thompson - echo "-------------- CC ------------------" && $CC --version 161bedd5dcaSJeremy L Thompson - echo "-------------- GCOV ----------------" && gcov --version 162bedd5dcaSJeremy L Thompson # Libraries 163bedd5dcaSJeremy L Thompson # -- libCEED 164bedd5dcaSJeremy L Thompson - echo "-------------- libCEED -------------" 165bedd5dcaSJeremy L Thompson - export CEED_DIR=/projects/honee/libCEED && git -C $CEED_DIR -c safe.directory=$CEED_DIR describe && make -C $CEED_DIR info 166bedd5dcaSJeremy L Thompson # -- PETSc 167bedd5dcaSJeremy L Thompson - echo "-------------- PETSc ---------------" 168bedd5dcaSJeremy L Thompson - export PETSC_DIR=/projects/honee/petsc 16948969772SJames Wright - export PETSC_ARCH=arch-parallel-cuda && git -C $PETSC_DIR -c safe.directory=$PETSC_DIR describe && make -C $PETSC_DIR info 170bedd5dcaSJeremy L Thompson - export PETSC_OPTIONS='-malloc_debug no' # faster tests 171bedd5dcaSJeremy L Thompson - export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib PATH="$PATH:$PETSC_DIR/$PETSC_ARCH/bin" # cgnsdiff 172bedd5dcaSJeremy L Thompson # HONEE 173bedd5dcaSJeremy L Thompson - echo "-------------- HONEE ---------------" && make info 174bedd5dcaSJeremy L Thompson - make clean 17574512b2dSJeremy L Thompson - make -j$NPROC_CPU 176bedd5dcaSJeremy L Thompson # Test suite 177bedd5dcaSJeremy L Thompson - echo "-------------- HONEE tests ---------" 178bedd5dcaSJeremy 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 179bedd5dcaSJeremy L Thompson # -- Fastest libCEED CPU backend, parallel 180a447840aSJeremy L Thompson - echo "Parallel tests skipped for now" 181*fb4d37b9SJames Wright # - source /home/phypid/spack/share/spack/setup-env.sh && spack load py-torch@2.3+cuda && export USE_TORCH=1 18248969772SJames Wright - export SMARTREDIS_DIR=/projects/honee/SmartSim/smartredis/install 183869763b2SJeremy L Thompson - NPROC_TEST=1 make -k -j$((NPROC_CPU / NPROC_POOL / 1)) CEED_BACKENDS="/cpu/self" JUNIT_BATCH="cpu-serial" junit search=navierstokes 184*fb4d37b9SJames Wright # - spack unload py-torch@2.3+cuda && export USE_TORCH=0 18548969772SJames Wright - source /projects/honee/SmartSim/venv/bin/activate 18667f3e659SJames Wright - NPROC_TEST=1 make -k -j$((NPROC_CPU / NPROC_POOL / 1)) CEED_BACKENDS="/cpu/self" JUNIT_BATCH="cpu-serial" junit search="test-smartsim" 187bedd5dcaSJeremy L Thompson # Report status 188bedd5dcaSJeremy L Thompson - touch .SUCCESS 189bedd5dcaSJeremy L Thompson after_script: 190bedd5dcaSJeremy L Thompson - | 191bedd5dcaSJeremy L Thompson if [ -f .SUCCESS ]; then 19285fc816eSJames Wright gcovr --xml-pretty --exclude-lines-by-pattern '^\s*SETERR.*' --exclude-unreachable-branches --print-summary -o coverage.xml; 193bedd5dcaSJeremy L Thompson fi 1942ef79a07SJeremy L Thompson coverage: '/^lines:\s+(\d+.\d\%)/' 195bedd5dcaSJeremy L Thompson artifacts: 196bedd5dcaSJeremy L Thompson paths: 197bedd5dcaSJeremy L Thompson - coverage.xml 198bedd5dcaSJeremy L Thompson - build/*.junit 199bedd5dcaSJeremy L Thompson reports: 200bedd5dcaSJeremy L Thompson coverage_report: 201bedd5dcaSJeremy L Thompson coverage_format: cobertura 202bedd5dcaSJeremy L Thompson path: coverage.xml 203bedd5dcaSJeremy L Thompson junit: build/*.junit 204bedd5dcaSJeremy L Thompson performance: performance.json 205bedd5dcaSJeremy L Thompson expire_in: 28 days 206bedd5dcaSJeremy L Thompson 207bedd5dcaSJeremy L Thompson 208bedd5dcaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 20904c6cceaSJeremy L Thompson# CPU Int64 testing on Noether 21004c6cceaSJeremy L Thompson# ---------------------------------------------------------------------------------------- 21104c6cceaSJeremy L Thompsonnoether-cpu-int64: 21204c6cceaSJeremy L Thompson stage: test:stage-full 21304c6cceaSJeremy L Thompson extends: .test 21404c6cceaSJeremy L Thompson tags: 21504c6cceaSJeremy L Thompson - noether 21604c6cceaSJeremy L Thompson - shell 21704c6cceaSJeremy L Thompson script: 21804c6cceaSJeremy L Thompson - rm -f .SUCCESS 21904c6cceaSJeremy L Thompson # Environment 220c3a3f305SJeremy L Thompson - export COVERAGE=1 CC=gcc 22104c6cceaSJeremy L Thompson - export NPROC_POOL=4 22204c6cceaSJeremy L Thompson - echo "-------------- nproc ---------------" && NPROC_CPU=$(nproc) && NPROC_GPU=$(($(nproc)<8?$(nproc):8)) && echo "NPROC_CPU" $NPROC_CPU && echo "NPROC_GPU" $NPROC_GPU 22304c6cceaSJeremy L Thompson - echo "-------------- CC ------------------" && $CC --version 22404c6cceaSJeremy L Thompson - echo "-------------- GCOV ----------------" && gcov --version 22504c6cceaSJeremy L Thompson # Libraries 22604c6cceaSJeremy L Thompson # -- libCEED 22704c6cceaSJeremy L Thompson - echo "-------------- libCEED -------------" 22804c6cceaSJeremy L Thompson - export CEED_DIR=/projects/honee/libCEED && git -C $CEED_DIR -c safe.directory=$CEED_DIR describe && make -C $CEED_DIR info 22904c6cceaSJeremy L Thompson # -- PETSc 23004c6cceaSJeremy L Thompson - echo "-------------- PETSc ---------------" 23104c6cceaSJeremy L Thompson - export PETSC_DIR=/projects/honee/petsc 23204c6cceaSJeremy L Thompson - export PETSC_ARCH=arch-serial-cpu-int64 && git -C $PETSC_DIR -c safe.directory=$PETSC_DIR describe && make -C $PETSC_DIR info 23304c6cceaSJeremy L Thompson - export PETSC_OPTIONS='-malloc_debug no' # faster tests 23404c6cceaSJeremy L Thompson - export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib PATH="$PATH:$PETSC_DIR/$PETSC_ARCH/bin" # cgnsdiff 23504c6cceaSJeremy L Thompson # HONEE 23604c6cceaSJeremy L Thompson - echo "-------------- HONEE ---------------" && make info 23704c6cceaSJeremy L Thompson - make clean 23804c6cceaSJeremy L Thompson - make -j$NPROC_CPU 23904c6cceaSJeremy L Thompson # Test suite 24004c6cceaSJeremy L Thompson - echo "-------------- HONEE tests ---------" 24104c6cceaSJeremy 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 24204c6cceaSJeremy L Thompson # -- Fastest libCEED CPU backend, serial 243*fb4d37b9SJames Wright # - source /home/phypid/spack/share/spack/setup-env.sh && spack load py-torch@2.3+cuda && export USE_TORCH=1 24448969772SJames Wright - export SMARTREDIS_DIR=/projects/honee/SmartSim/smartredis/install 24504c6cceaSJeremy 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 246*fb4d37b9SJames Wright # - spack unload py-torch@2.3+cuda && export USE_TORCH=0 24767f3e659SJames Wright - source /home/phypid/SmartSimTestingSoftware/bin/activate 24867f3e659SJames Wright - NPROC_TEST=1 make -k -j$((NPROC_CPU / NPROC_POOL / 1)) CEED_BACKENDS="/cpu/self" JUNIT_BATCH="cpu-serial" junit search="test-py-smartsim_regression_framework" 24904c6cceaSJeremy L Thompson # Report status 25004c6cceaSJeremy L Thompson - touch .SUCCESS 25104c6cceaSJeremy L Thompson after_script: 25204c6cceaSJeremy L Thompson - | 25304c6cceaSJeremy L Thompson if [ -f .SUCCESS ]; then 25485fc816eSJames Wright gcovr --xml-pretty --exclude-lines-by-pattern '^\s*SETERR.*' --exclude-unreachable-branches --print-summary -o coverage.xml; 25504c6cceaSJeremy L Thompson fi 25604c6cceaSJeremy L Thompson coverage: '/^lines:\s+(\d+.\d\%)/' 25704c6cceaSJeremy L Thompson artifacts: 25804c6cceaSJeremy L Thompson paths: 25904c6cceaSJeremy L Thompson - coverage.xml 26004c6cceaSJeremy L Thompson - build/*.junit 26104c6cceaSJeremy L Thompson reports: 26204c6cceaSJeremy L Thompson coverage_report: 26304c6cceaSJeremy L Thompson coverage_format: cobertura 26404c6cceaSJeremy L Thompson path: coverage.xml 26504c6cceaSJeremy L Thompson junit: build/*.junit 26604c6cceaSJeremy L Thompson performance: performance.json 26704c6cceaSJeremy L Thompson expire_in: 28 days 26804c6cceaSJeremy L Thompson 26904c6cceaSJeremy L Thompson 270342f6305SJames Wright#### Disable HIP temporarily 271342f6305SJames Wright 272342f6305SJames Wright# # ---------------------------------------------------------------------------------------- 273342f6305SJames Wright# # GPU testing on Noether 274342f6305SJames Wright# # ---------------------------------------------------------------------------------------- 275342f6305SJames Wright# noether-hip: 276342f6305SJames Wright# stage: test:stage-full 277342f6305SJames Wright# extends: .test 278342f6305SJames Wright# tags: 279342f6305SJames Wright# - noether 280342f6305SJames Wright# - shell 281342f6305SJames Wright# script: 282342f6305SJames Wright# - rm -f .SUCCESS 283342f6305SJames Wright# # Environment 284342f6305SJames Wright# - export COVERAGE=1 CC=gcc HIPCC=hipcc 285342f6305SJames Wright# - export NPROC_POOL=4 286342f6305SJames Wright# - echo "-------------- nproc ---------------" && NPROC_CPU=$(nproc) && NPROC_GPU=$(($(nproc)<8?$(nproc):8)) && echo "NPROC_CPU" $NPROC_CPU && echo "NPROC_GPU" $NPROC_GPU 287342f6305SJames Wright# - echo "-------------- CC ------------------" && $CC --version 288342f6305SJames Wright# - echo "-------------- HIPCC ---------------" && $HIPCC --version && export HIP_DIR=/opt/rocm 289342f6305SJames Wright# - echo "-------------- GCOV ----------------" && gcov --version 290342f6305SJames Wright# # Libraries 291342f6305SJames Wright# # -- libCEED 292342f6305SJames Wright# - echo "-------------- libCEED -------------" 293342f6305SJames Wright# - export CEED_DIR=/projects/honee/libCEED && git -C $CEED_DIR -c safe.directory=$CEED_DIR describe && make -C $CEED_DIR info 294342f6305SJames Wright# # -- PETSc 295342f6305SJames Wright# - echo "-------------- PETSc ---------------" 296342f6305SJames Wright# - export PETSC_DIR=/projects/honee/petsc 297342f6305SJames Wright# - export PETSC_ARCH=arch-parallel-hip && git -C $PETSC_DIR -c safe.directory=$PETSC_DIR describe && make -C $PETSC_DIR info 298342f6305SJames Wright# - export PETSC_OPTIONS='-malloc_debug no' # faster tests 299342f6305SJames Wright# - export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib PATH="$PATH:$PETSC_DIR/$PETSC_ARCH/bin" # cgnsdiff 300342f6305SJames Wright# # HONEE 301342f6305SJames Wright# - echo "-------------- HONEE ---------------" && make info 302342f6305SJames Wright# - make clean 303342f6305SJames Wright# - make -j$NPROC_CPU 304342f6305SJames Wright# # Test suite 305342f6305SJames Wright# - echo "-------------- HONEE tests ---------" 306342f6305SJames 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 307342f6305SJames Wright# # -- Fastest libCEED HIP backend, serial 308342f6305SJames Wright# # Note: /shared is faster due to /gen JiT time for CeedOperators overwhelming runtime improvements at these problem sizes 309342f6305SJames Wright# - NPROC_TEST=1 make -k -j$((NPROC_GPU / NPROC_POOL / 1)) CEED_BACKENDS="/gpu/hip/shared" JUNIT_BATCH="hip-serial" junit search=navierstokes 310342f6305SJames Wright# # Report status 311342f6305SJames Wright# - touch .SUCCESS 312342f6305SJames Wright# after_script: 313342f6305SJames Wright# - | 314342f6305SJames Wright# if [ -f .SUCCESS ]; then 315342f6305SJames Wright# gcovr --xml-pretty --exclude-lines-by-pattern '^\s*SETERR.*' --exclude-unreachable-branches --print-summary -o coverage.xml; 316342f6305SJames Wright# fi 317342f6305SJames Wright# coverage: '/^lines:\s+(\d+.\d\%)/' 318342f6305SJames Wright# artifacts: 319342f6305SJames Wright# paths: 320342f6305SJames Wright# - coverage.xml 321342f6305SJames Wright# - build/*.junit 322342f6305SJames Wright# reports: 323342f6305SJames Wright# coverage_report: 324342f6305SJames Wright# coverage_format: cobertura 325342f6305SJames Wright# path: coverage.xml 326342f6305SJames Wright# junit: build/*.junit 327342f6305SJames Wright# performance: performance.json 328342f6305SJames Wright# expire_in: 28 days 329a3c4661bSJames Wright 330a3c4661bSJames Wright 3310241eab6SJeremy L Thompsonnoether-cuda: 3320241eab6SJeremy L Thompson stage: test:stage-full 3330241eab6SJeremy L Thompson extends: .test 3340241eab6SJeremy L Thompson tags: 3350241eab6SJeremy L Thompson - noether 3360241eab6SJeremy L Thompson - shell 3370241eab6SJeremy L Thompson script: 3380241eab6SJeremy L Thompson - rm -f .SUCCESS 3390241eab6SJeremy L Thompson # Environment 3400241eab6SJeremy L Thompson - export COVERAGE=1 CC=gcc NVCC=nvcc 3410241eab6SJeremy L Thompson - export NPROC_POOL=4 3420241eab6SJeremy L Thompson - echo "-------------- nproc ---------------" && NPROC_CPU=$(nproc) && NPROC_GPU=$(($(nproc)<8?$(nproc):8)) && echo "NPROC_CPU" $NPROC_CPU && echo "NPROC_GPU" $NPROC_GPU 3430241eab6SJeremy L Thompson - echo "-------------- CC ------------------" && $CC --version 3440241eab6SJeremy L Thompson - echo "-------------- NVCC ----------------" && $NVCC --version 3450241eab6SJeremy L Thompson - echo "-------------- GCOV ----------------" && gcov --version 3460241eab6SJeremy L Thompson # Libraries 3470241eab6SJeremy L Thompson # -- libCEED 3480241eab6SJeremy L Thompson - echo "-------------- libCEED -------------" 3490241eab6SJeremy L Thompson - export CEED_DIR=/projects/honee/libCEED && git -C $CEED_DIR -c safe.directory=$CEED_DIR describe && make -C $CEED_DIR info 3500241eab6SJeremy L Thompson # -- PETSc 3510241eab6SJeremy L Thompson - echo "-------------- PETSc ---------------" 3520241eab6SJeremy L Thompson - export PETSC_DIR=/projects/honee/petsc 3530241eab6SJeremy L Thompson - export PETSC_ARCH=arch-parallel-cuda && git -C $PETSC_DIR -c safe.directory=$PETSC_DIR describe && make -C $PETSC_DIR info 3540241eab6SJeremy L Thompson - export PETSC_OPTIONS='-malloc_debug no -use_gpu_aware_mpi 0' # faster tests 3550241eab6SJeremy L Thompson - export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib PATH="$PATH:$PETSC_DIR/$PETSC_ARCH/bin" # cgnsdiff 3560241eab6SJeremy L Thompson # HONEE 3570241eab6SJeremy L Thompson - echo "-------------- HONEE ---------------" && make info 3580241eab6SJeremy L Thompson - make clean 3590241eab6SJeremy L Thompson - make -j$NPROC_CPU 3600241eab6SJeremy L Thompson # Test suite 3610241eab6SJeremy L Thompson - echo "-------------- HONEE tests ---------" 3620241eab6SJeremy 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 3630241eab6SJeremy L Thompson # -- Fastest libCEED CUDA backend, serial 3640241eab6SJeremy L Thompson # Note: /shared is faster due to /gen JiT time for CeedOperators overwhelming runtime improvements at these problem sizes 365*fb4d37b9SJames Wright # - source /home/phypid/spack/share/spack/setup-env.sh && spack load py-torch@2.3+cuda && export USE_TORCH=1 3660241eab6SJeremy 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 3670241eab6SJeremy L Thompson # Report status 3680241eab6SJeremy L Thompson - touch .SUCCESS 3690241eab6SJeremy L Thompson after_script: 3700241eab6SJeremy L Thompson - | 3710241eab6SJeremy L Thompson if [ -f .SUCCESS ]; then 37285fc816eSJames Wright gcovr --xml-pretty --exclude-lines-by-pattern '^\s*SETERR.*' --exclude-unreachable-branches --print-summary -o coverage.xml; 3730241eab6SJeremy L Thompson fi 3740241eab6SJeremy L Thompson coverage: '/^lines:\s+(\d+.\d\%)/' 3750241eab6SJeremy L Thompson artifacts: 3760241eab6SJeremy L Thompson paths: 3770241eab6SJeremy L Thompson - coverage.xml 3780241eab6SJeremy L Thompson - build/*.junit 3790241eab6SJeremy L Thompson reports: 3800241eab6SJeremy L Thompson coverage_report: 3810241eab6SJeremy L Thompson coverage_format: cobertura 3820241eab6SJeremy L Thompson path: coverage.xml 3830241eab6SJeremy L Thompson junit: build/*.junit 3840241eab6SJeremy L Thompson performance: performance.json 3850241eab6SJeremy L Thompson expire_in: 28 days 3860241eab6SJeremy L Thompson 3870241eab6SJeremy L Thompson 388a3c4661bSJames Wright# ---------------------------------------------------------------------------------------- 389a3c4661bSJames Wright# Build documentation 390a3c4661bSJames Wright# ---------------------------------------------------------------------------------------- 391a3c4661bSJames Wrightdocs-review: 392a3c4661bSJames Wright stage: test:docs 393a3c4661bSJames Wright tags: 394a3c4661bSJames Wright - noether 395a3c4661bSJames Wright - docker 396a3c4661bSJames Wright extends: 397a3c4661bSJames Wright - .docs 398a3c4661bSJames Wright - .test-basic 399a3c4661bSJames Wright interruptible: true 400a3c4661bSJames Wright script: 40148969772SJames Wright - export PETSC_DIR=/projects/honee/petsc PETSC_ARCH=arch-parallel-cuda CEED_DIR=/projects/honee/libCEED 4023ff588abSJames Wright - git -c safe.directory=/builds/phypid/honee submodule update --init 403a3c4661bSJames Wright - make doc-html pkgconf=true DOXYGENOPTS= SPHINXOPTS=-W 404a3c4661bSJames Wright - mv doc/build/html public 405a3c4661bSJames Wright artifacts: 406a3c4661bSJames Wright paths: 407a3c4661bSJames Wright - public 408a3c4661bSJames Wright expire_in: 28 days 409a3c4661bSJames Wright environment: 410a3c4661bSJames Wright name: review/$CI_COMMIT_REF_NAME 411a3c4661bSJames Wright url: https://$CI_PROJECT_NAMESPACE.gitlab.io/-/$CI_PROJECT_NAME/-/jobs/$CI_JOB_ID/artifacts/public/index.html 412a3c4661bSJames Wright 413a3c4661bSJames Wright 414a3c4661bSJames Wright# ---------------------------------------------------------------------------------------- 415a3c4661bSJames Wright# Deploy documentation using GitLab pages 416a3c4661bSJames Wright# ---------------------------------------------------------------------------------------- 417a3c4661bSJames Wrightpages: # this job name has special meaning to GitLab 418a3c4661bSJames Wright stage: deploy 419a3c4661bSJames Wright tags: 420a3c4661bSJames Wright - noether 421a3c4661bSJames Wright - docker 422a3c4661bSJames Wright extends: .docs 423a3c4661bSJames Wright interruptible: false 424a3c4661bSJames Wright script: 4253ff588abSJames Wright - git -c safe.directory=/builds/phypid/honee submodule update --init 426a3c4661bSJames Wright - make doc-dirhtml pkgconf=true DOXYGENOPTS= 427a3c4661bSJames Wright - mv doc/build/dirhtml public 428a3c4661bSJames Wright only: 429a3c4661bSJames Wright - main 430a3c4661bSJames Wright artifacts: 431a3c4661bSJames Wright paths: 432a3c4661bSJames Wright - public 433