3.2 KiB
3.2 KiB
Spack Instructions
Table of contents
OpenMP
- There are 3 offloading options for OpenMP: NVIDIA, AMD and Intel.
- If a user provides a value for
cuda_arch, the execution will be automatically offloaded to NVIDIA. - If a user provides a value for
amdgpu_target, the operation will be offloaded to AMD. - In the absence of
cuda_archandamdgpu_target, the execution will be offloaded to Intel.
| Flag | Definition |
|---|---|
| cuda_arch | - List of supported compute capabilities are provided here - Useful link for matching CUDA gencodes with NVIDIA architectures |
| amdgpu_target | List of supported architectures are provided here |
# Example 1: for Intel offload
$ spack install babelstream%oneapi +omp
# Example 2: for Nvidia GPU for Volta (sm_70)
$ spack install babelstream +omp cuda_arch=70
# Example 3: for AMD GPU gfx701
$ spack install babelstream +omp amdgpu_target=gfx701
OpenCL
- No need to specify
amdgpu_targetorcuda_archhere since we are using AMD and CUDA as backend respectively.
| Flag | Definition |
|---|---|
| backend | 4 different backend options: - cuda - amd - intel - pocl |
# Example 1: CUDA backend
$ spack install babelstream%gcc +ocl backend=cuda
# Example 2: AMD backend
$ spack install babelstream%gcc +ocl backend=amd
# Example 3: Intel backend
$ spack install babelstream%gcc +ocl backend=intel
# Example 4: POCL backend
$ spack install babelstream%gcc +ocl backend=pocl
STD
- Minimum GCC version requirement
10.1.0 - NVHPC Offload will be added in the future release
# Example 1: data
$ spack install babelstream +stddata
# Example 2: ranges
$ spack install babelstream +stdranges
# Example 3: indices
$ spack install babelstream +stdindices
HIP(ROCM)
amdgpu_targetandflagsare optional here.
| Flag | Definition |
|---|---|
| amdgpu_target | List of supported architectures are provided here |
| flags | Extra flags to pass |
# Example 1: ROCM default
$ spack install babelstream +rocm
# Example 2: ROCM with GPU target
$ spack install babelstream +rocm amdgpu_target=<gfx701>
# Example 3: ROCM with extra flags option
$ spack install babelstream +rocm flags=<xxx>
# Example 4: ROCM with GPU target and extra flags
$ spack install babelstream +rocm amdgpu_target=<gfx701> flags=<xxx>