ci: add minimal gpu testing stack (#35251)
* ci: add minimal gpu testing stack * kokkos +cuda requires +wrapper... * require pass * add raja+cuda
This commit is contained in:
		| @@ -323,6 +323,43 @@ e4s-protected-build: | ||||
|     - artifacts: True | ||||
|       job: e4s-protected-generate | ||||
|  | ||||
| ######################################## | ||||
| # GPU Testing Pipeline | ||||
| ######################################## | ||||
| .gpu-tests: | ||||
|   variables: | ||||
|     SPACK_CI_STACK_NAME: gpu-tests | ||||
|  | ||||
| gpu-tests-pr-generate: | ||||
|   extends: [ ".gpu-tests", ".pr-generate"] | ||||
|   image: ecpe4s/ubuntu20.04-runner-x86_64:2023-01-01 | ||||
|  | ||||
| gpu-tests-protected-generate: | ||||
|   extends: [ ".gpu-tests", ".protected-generate"] | ||||
|   image: ecpe4s/ubuntu20.04-runner-x86_64:2023-01-01 | ||||
|  | ||||
| gpu-tests-pr-build: | ||||
|   extends: [ ".gpu-tests", ".pr-build" ] | ||||
|   trigger: | ||||
|     include: | ||||
|       - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml | ||||
|         job: gpu-tests-pr-generate | ||||
|     strategy: depend | ||||
|   needs: | ||||
|     - artifacts: True | ||||
|       job: gpu-tests-pr-generate | ||||
|  | ||||
| gpu-tests-protected-build: | ||||
|   extends: [ ".gpu-tests", ".protected-build" ] | ||||
|   trigger: | ||||
|     include: | ||||
|       - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml | ||||
|         job: gpu-tests-protected-generate | ||||
|     strategy: depend | ||||
|   needs: | ||||
|     - artifacts: True | ||||
|       job: gpu-tests-protected-generate | ||||
|  | ||||
| ######################################## | ||||
| # E4S OneAPI Pipeline | ||||
| ######################################## | ||||
|   | ||||
| @@ -270,6 +270,7 @@ spack: | ||||
|  | ||||
|     match_behavior: first | ||||
|     mappings: | ||||
|  | ||||
|       - match: | ||||
|           - hipblas | ||||
|           - llvm | ||||
|   | ||||
							
								
								
									
										330
									
								
								share/spack/gitlab/cloud_pipelines/stacks/gpu-tests/spack.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										330
									
								
								share/spack/gitlab/cloud_pipelines/stacks/gpu-tests/spack.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,330 @@ | ||||
| spack: | ||||
|   view: false | ||||
|  | ||||
|   concretizer: | ||||
|     reuse: false | ||||
|     unify: false | ||||
|  | ||||
|   config: | ||||
|     build_jobs: 32 | ||||
|     concretizer: clingo | ||||
|     install_tree: | ||||
|       root: /home/software/spack | ||||
|       padded_length: 512 | ||||
|       projections: | ||||
|         all: '{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}' | ||||
|  | ||||
|   packages: | ||||
|     all: | ||||
|       compiler: [gcc@11.1.0] | ||||
|       providers: | ||||
|         blas: [openblas] | ||||
|         mpi: [mpich] | ||||
|       target: [x86_64] | ||||
|       variants: +mpi amdgpu_target=gfx90a cuda_arch=80 | ||||
|     tbb: | ||||
|       require: "intel-tbb" | ||||
|     binutils: | ||||
|       variants: +ld +gold +headers +libiberty ~nls | ||||
|     boost: | ||||
|       variants: +python +filesystem +iostreams +system | ||||
|     cuda: | ||||
|       version: [11.7.0] | ||||
|     elfutils: | ||||
|       variants: +bzip2 ~nls +xz | ||||
|     hdf5: | ||||
|       variants: +fortran +hl +shared | ||||
|     libfabric: | ||||
|       variants: fabrics=sockets,tcp,udp,rxm | ||||
|     libunwind: | ||||
|       variants: +pic +xz | ||||
|     mpich: | ||||
|       variants: ~wrapperrpath | ||||
|     ncurses: | ||||
|       variants: +termlib | ||||
|     openblas: | ||||
|       variants: threads=openmp | ||||
|     paraview: | ||||
|       # Don't build GUI support or GLX rendering for HPC/container deployments | ||||
|       require: "@5.11 ~qt+osmesa" | ||||
|     python: | ||||
|       version: [3.8.13] | ||||
|     trilinos: | ||||
|       require: +amesos +amesos2 +anasazi +aztec +boost +epetra +epetraext | ||||
|         +ifpack +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu | ||||
|         +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stratimikos | ||||
|         +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long | ||||
|     xz: | ||||
|       variants: +pic | ||||
|     mesa: | ||||
|       version: [21.3.8] | ||||
|  | ||||
|   specs: | ||||
|   - kokkos +rocm amdgpu_target=gfx90a | ||||
|   - kokkos +wrapper +cuda cuda_arch=80 ^cuda@11.7 | ||||
|   - raja +cuda cuda_arch=80 ^cuda@11.7 | ||||
|  | ||||
|   mirrors: { "mirror": "s3://spack-binaries/develop/gpu-tests" } | ||||
|  | ||||
|   gitlab-ci: | ||||
|  | ||||
|     script: | ||||
|     - uname -a || true | ||||
|     - grep -E 'vendor|model name' /proc/cpuinfo 2>/dev/null | sort -u || head -n10 /proc/cpuinfo 2>/dev/null || true | ||||
|     - nproc | ||||
|     - curl -Lfs 'https://github.com/JuliaBinaryWrappers/GNUMake_jll.jl/releases/download/GNUMake-v4.3.0+1/GNUMake.v4.3.0.x86_64-linux-gnu.tar.gz' -o gmake.tar.gz | ||||
|     - printf 'fef1f59e56d2d11e6d700ba22d3444b6e583c663d6883fd0a4f63ab8bd280f0f gmake.tar.gz' | sha256sum --check --strict --quiet | ||||
|     - tar -xzf gmake.tar.gz -C /usr bin/make 2> /dev/null | ||||
|     - . "./share/spack/setup-env.sh" | ||||
|     - spack --version | ||||
|     - spack arch | ||||
|     - cd ${SPACK_CONCRETE_ENV_DIR} | ||||
|     - spack env activate --without-view . | ||||
|     - spack config add "config:install_tree:projections:${SPACK_JOB_SPEC_PKG_NAME}:'morepadding/{architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}'" | ||||
|     - mkdir -p ${SPACK_ARTIFACTS_ROOT}/user_data | ||||
|     # AWS runners mount E4S public key (verification), UO runners mount public/private (signing/verification) | ||||
|     - if [[ -r /mnt/key/e4s.gpg ]]; then spack gpg trust /mnt/key/e4s.gpg; fi | ||||
|     # UO runners mount intermediate ci public key (verification), AWS runners mount public/private (signing/verification) | ||||
|     - if [[ -r /mnt/key/intermediate_ci_signing_key.gpg ]]; then spack gpg trust /mnt/key/intermediate_ci_signing_key.gpg; fi | ||||
|     - if [[ -r /mnt/key/spack_public_key.gpg ]]; then spack gpg trust /mnt/key/spack_public_key.gpg; fi | ||||
|     - spack --color=always --backtrace ci rebuild --tests > >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_out.txt) 2> >(tee ${SPACK_ARTIFACTS_ROOT}/user_data/pipeline_err.txt >&2) | ||||
|  | ||||
|     after_script: | ||||
|     - cat /proc/loadavg || true | ||||
|  | ||||
|     image: ecpe4s/ubuntu20.04-runner-x86_64:2023-01-01 | ||||
|  | ||||
|     broken-tests-packages: | ||||
|     - gptune | ||||
|  | ||||
|     match_behavior: first | ||||
|     mappings: | ||||
|       - match: | ||||
|         - kokkos +rocm amdgpu_target=gfx90a | ||||
|         runner-attributes: | ||||
|           tags: [ "rocm-5.4.0", "mi210" ] | ||||
|           variables: | ||||
|             CI_JOB_SIZE: large | ||||
|  | ||||
|       - match: | ||||
|         - kokkos +cuda cuda_arch=80 | ||||
|         runner-attributes: | ||||
|           tags: [ "cuda-11.7", "a100" ] | ||||
|           variables: | ||||
|             CI_JOB_SIZE: large | ||||
|  | ||||
|       - match: | ||||
|         - raja +cuda cuda_arch=80 | ||||
|         runner-attributes: | ||||
|           tags: [ "cuda-11.7", "a100" ] | ||||
|           variables: | ||||
|             CI_JOB_SIZE: large | ||||
|  | ||||
|       - match: | ||||
|         - hipblas | ||||
|         - llvm | ||||
|         - llvm-amdgpu | ||||
|         - rocblas | ||||
|         - paraview | ||||
|         - py-torch | ||||
|         runner-attributes: | ||||
|           tags: [ "spack", "huge", "x86_64" ] | ||||
|           variables: | ||||
|             CI_JOB_SIZE: huge | ||||
|             KUBERNETES_CPU_REQUEST: 11000m | ||||
|             KUBERNETES_MEMORY_REQUEST: 42G | ||||
|  | ||||
|       - match: | ||||
|         - cuda | ||||
|         - dealii | ||||
|         - dray | ||||
|         - dyninst | ||||
|         - ginkgo | ||||
|         - hpx | ||||
|         - kokkos-kernels | ||||
|         - kokkos-nvcc-wrapper | ||||
|         - magma | ||||
|         - mfem | ||||
|         - mpich | ||||
|         - nvhpc | ||||
|         - oce | ||||
|         - openturns | ||||
|         - plumed | ||||
|         - precice | ||||
|         - py-tensorflow | ||||
|         - qt | ||||
|         - raja | ||||
|         - rocfft | ||||
|         - rocsolver | ||||
|         - rocsparse | ||||
|         - rust | ||||
|         - slate | ||||
|         - trilinos | ||||
|         - visit | ||||
|         - vtk | ||||
|         - vtk-m | ||||
|         - warpx | ||||
|         runner-attributes: | ||||
|           tags: [ "spack", "large", "x86_64" ] | ||||
|           variables: | ||||
|             CI_JOB_SIZE: large | ||||
|             KUBERNETES_CPU_REQUEST: 8000m | ||||
|             KUBERNETES_MEMORY_REQUEST: 12G | ||||
|  | ||||
|       - match: | ||||
|         - adios2 | ||||
|         - amrex | ||||
|         - archer | ||||
|         - ascent | ||||
|         - axom | ||||
|         - binutils | ||||
|         - blaspp | ||||
|         - boost | ||||
|         - butterflypack | ||||
|         - cabana | ||||
|         - caliper | ||||
|         - camp | ||||
|         - chai | ||||
|         - conduit | ||||
|         - datatransferkit | ||||
|         - faodel | ||||
|         - ffmpeg | ||||
|         - fftw | ||||
|         - fortrilinos | ||||
|         - gperftools | ||||
|         - gptune | ||||
|         - hdf5 | ||||
|         - heffte | ||||
|         - hpctoolkit | ||||
|         - hwloc | ||||
|         - hypre | ||||
|         - kokkos | ||||
|         - lammps | ||||
|         - lapackpp | ||||
|         - legion | ||||
|         - libzmq | ||||
|         - llvm-openmp-ompt | ||||
|         - mbedtls | ||||
|         - netlib-scalapack | ||||
|         - omega-h | ||||
|         - openmpi | ||||
|         - openpmd-api | ||||
|         - pagmo2 | ||||
|         - papyrus | ||||
|         - parsec | ||||
|         - pdt | ||||
|         - petsc | ||||
|         - pumi | ||||
|         - py-ipython-genutils | ||||
|         - py-petsc4py | ||||
|         - py-scipy | ||||
|         - py-statsmodels | ||||
|         - py-warlock | ||||
|         - py-warpx | ||||
|         - pygmo | ||||
|         - slepc | ||||
|         - slurm | ||||
|         - strumpack | ||||
|         - sundials | ||||
|         - superlu-dist | ||||
|         - tasmanian | ||||
|         - tau | ||||
|         - upcxx | ||||
|         - vtk-h | ||||
|         - zfp | ||||
|         runner-attributes: | ||||
|           tags: [ "spack", "medium", "x86_64" ] | ||||
|           variables: | ||||
|             CI_JOB_SIZE: "medium" | ||||
|             KUBERNETES_CPU_REQUEST: "2000m" | ||||
|             KUBERNETES_MEMORY_REQUEST: "4G" | ||||
|  | ||||
|       - match: | ||||
|         - alsa-lib | ||||
|         - ant | ||||
|         - antlr | ||||
|         - argobots | ||||
|         - automake | ||||
|         - berkeley-db | ||||
|         - bison | ||||
|         - blt | ||||
|         - cmake | ||||
|         - curl | ||||
|         - darshan-util | ||||
|         - diffutils | ||||
|         - exmcutils | ||||
|         - expat | ||||
|         - flit | ||||
|         - freetype | ||||
|         - gdbm | ||||
|         - gotcha | ||||
|         - hpcviewer | ||||
|         - jansson | ||||
|         - json-c | ||||
|         - libbsd | ||||
|         - libevent | ||||
|         - libjpeg-turbo | ||||
|         - libnrm | ||||
|         - libpng | ||||
|         - libunistring | ||||
|         - lua-luaposix | ||||
|         - m4 | ||||
|         - mpfr | ||||
|         - ncurses | ||||
|         - openblas | ||||
|         - openjdk | ||||
|         - papi | ||||
|         - parallel-netcdf | ||||
|         - pcre2 | ||||
|         - perl-data-dumper | ||||
|         - pkgconf | ||||
|         - py-alembic | ||||
|         - py-idna | ||||
|         - py-testpath | ||||
|         - qhull | ||||
|         - snappy | ||||
|         - swig | ||||
|         - tar | ||||
|         - tcl | ||||
|         - texinfo | ||||
|         - unzip | ||||
|         - util-linux-uuid | ||||
|         - util-macros | ||||
|         - yaml-cpp | ||||
|         - zlib | ||||
|         - zstd | ||||
|         runner-attributes: | ||||
|           tags: [ "spack", "small", "x86_64" ] | ||||
|           variables: | ||||
|             CI_JOB_SIZE: "small" | ||||
|             KUBERNETES_CPU_REQUEST: "500m" | ||||
|             KUBERNETES_MEMORY_REQUEST: "500M" | ||||
|  | ||||
|       - match: ['os=ubuntu20.04'] | ||||
|         runner-attributes: | ||||
|           tags: ["spack", "x86_64"] | ||||
|           variables: | ||||
|             CI_JOB_SIZE: "default" | ||||
|  | ||||
|     broken-specs-url: "s3://spack-binaries/broken-specs" | ||||
|  | ||||
|     service-job-attributes: | ||||
|       before_script: | ||||
|         - . "./share/spack/setup-env.sh" | ||||
|         - spack --version | ||||
|       image: ecpe4s/ubuntu20.04-runner-x86_64:2023-01-01 | ||||
|       tags: ["spack", "public", "x86_64"] | ||||
|  | ||||
|     signing-job-attributes: | ||||
|       image: { "name": "ghcr.io/spack/notary:latest", "entrypoint": [""] } | ||||
|       tags: ["spack", "aws"] | ||||
|       script: | ||||
|         - aws s3 sync --exclude "*" --include "*spec.json*" ${SPACK_REMOTE_MIRROR_OVERRIDE}/build_cache /tmp | ||||
|         - /sign.sh | ||||
|         - aws s3 sync --exclude "*" --include "*spec.json.sig*" /tmp ${SPACK_REMOTE_MIRROR_OVERRIDE}/build_cache | ||||
|  | ||||
|   cdash: | ||||
|     build-group: GPU Testing | ||||
|     url: https://cdash.spack.io | ||||
|     project: Spack Testing | ||||
|     site: Cloud Gitlab Infrastructure | ||||
		Reference in New Issue
	
	Block a user
	 eugeneswalker
					eugeneswalker