args[${#args[@]}]="--oneapi 2021.1.1"
args[${#args[@]}]="--oneapi 2021.2.0 --intel-compute-runtime 21.21.19914"
args[${#args[@]}]="--llvm --doxygen --mpi openmpi --venvs 3.7.7"
-args[${#args[@]}]="--llvm 11 --cuda 11.2.2 --hipsycl 9867a7b --rocm 4.0.1"
+args[${#args[@]}]="--llvm 11 --cuda 11.2.2 --hipsycl 0bf6420aab18 --rocm 4.2"
echo "Building the following images."
for arg_string in "${args[@]}"; do
'libelf1',
'rocm-opencl',
'rocm-dev',
- 'clinfo'
+ 'clinfo',
+ 'rocfft',
+ 'hipfft',
]
if args.rocm is None:
raise RuntimeError('hipSYCL requires the rocm packages')
- cmake_opts = [f'-DLLVM_DIR=/usr/lib/llvm-{args.llvm}/cmake',
- f'-DCLANG_EXECUTABLE_PATH=/usr/bin/clang++-{args.llvm}',
+ cmake_opts = [f'-DLLVM_DIR=/opt/rocm/llvm/lib/cmake/llvm',
'-DCMAKE_PREFIX_PATH=/opt/rocm/lib/cmake',
'-DWITH_ROCM_BACKEND=ON']
if args.cuda is not None:
- .use-clang:base
- .use-cuda
- .rules:post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-llvm-11-cuda-11.2.2-hipsycl-9867a7b-rocm-4.0.1
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-llvm-11-cuda-11.2.2-hipsycl-0bf6420aab18-rocm-4.2
variables:
CMAKE: /usr/local/cmake-3.17.2/bin/cmake
CMAKE_SIMD_OPTIONS: "-DGMX_USE_SIMD_KERNELS=off"
- .use-clang:base
- .use-ccache
- .rules:post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-llvm-11-cuda-11.2.2-hipsycl-9867a7b-rocm-4.0.1
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-llvm-11-cuda-11.2.2-hipsycl-0bf6420aab18-rocm-4.2
variables:
CMAKE: /usr/local/cmake-3.17.2/bin/cmake
needs:
extends:
- .gromacs:base:test
- .rules:post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-llvm-11-cuda-11.2.2-hipsycl-9867a7b-rocm-4.0.1
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-llvm-11-cuda-11.2.2-hipsycl-0bf6420aab18-rocm-4.2
variables:
CMAKE: /usr/local/cmake-3.17.2/bin/cmake
KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
extends:
- .gromacs:base:regressiontest
- .rules:post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-llvm-11-cuda-11.2.2-hipsycl-9867a7b-rocm-4.0.1
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-llvm-11-cuda-11.2.2-hipsycl-0bf6420aab18-rocm-4.2
variables:
CMAKE: /usr/local/cmake-3.17.2/bin/cmake
KUBERNETES_EXTENDED_RESOURCE_NAME: "nvidia.com/gpu"
# Test implementation choices (free to change as needed):
# OS: Ubuntu 20.04
# Build type: RelWithAssert
-# Compiler: Clang 11
+# Compiler: Clang 12 (ROCm)
# MPI: thread_MPI
# SIMD: AVX2_256
- .use-clang:base
- .use-sycl
- .rules:merge-and-post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-llvm-11-cuda-11.2.2-hipsycl-9867a7b-rocm-4.0.1
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-llvm-11-cuda-11.2.2-hipsycl-0bf6420aab18-rocm-4.2
variables:
CMAKE: /usr/local/cmake-3.18.4/bin/cmake
CMAKE_SIMD_OPTIONS: "-DGMX_SIMD=AVX2_256"
CMAKE_BUILD_TYPE_OPTIONS: "-DCMAKE_BUILD_TYPE=RelWithAssert"
- CMAKE_GPU_OPTIONS: "-DGMX_GPU=SYCL -DGMX_SYCL_HIPSYCL=ON -DHIPSYCL_TARGETS='cuda:sm_60,sm_61,sm_70,sm_75;hip:gfx900'"
+ # Override the default clang compiler to the one provided by ROCm
+ # Note that this compiler can only build for HIP targets. If this
+ # changes (or we build our own clang) then it would be nice to
+ # reinstate CUDA targets in -DHIPSYCL_TARGETS below.
+ CMAKE_COMPILER_SCRIPT: -DCMAKE_C_COMPILER=/opt/rocm/llvm/bin/clang -DCMAKE_CXX_COMPILER=/opt/rocm/llvm/bin/clang++
+ CMAKE_GPU_OPTIONS: "-DGMX_GPU=SYCL -DGMX_SYCL_HIPSYCL=ON -DHIPSYCL_TARGETS='hip:gfx900'"
# Unset COMPILER_LAUNCHER (previously set to ccache) because it conflicts with hipSYCL's syclcc-launcher
CMAKE_EXTRA_OPTIONS: "-DCMAKE_C_COMPILER_LAUNCHER= -DCMAKE_CXX_COMPILER_LAUNCHER="
COMPILER_MAJOR_VERSION: 11
- .before_script:default
# Not using ccache because it plays poorly with syclcc-launcher
- .rules:merge-and-post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-llvm-11-cuda-11.2.2-hipsycl-9867a7b-rocm-4.0.1
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-llvm-11-cuda-11.2.2-hipsycl-0bf6420aab18-rocm-4.2
variables:
CMAKE: /usr/local/cmake-3.18.4/bin/cmake
tags:
- .use-clang:base
- .use-cuda
- .rules:nightly-not-for-release
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-llvm-11-cuda-11.2.2-hipsycl-9867a7b-rocm-4.0.1
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-llvm-11-cuda-11.2.2-hipsycl-0bf6420aab18-rocm-4.2
variables:
CMAKE: cmake
COMPILER_MAJOR_VERSION: 11
- .variables:default
- .rules:nightly-not-for-release
stage: source-check
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-llvm-11-cuda-11.2.2-hipsycl-9867a7b-rocm-4.0.1
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-llvm-11-cuda-11.2.2-hipsycl-0bf6420aab18-rocm-4.2
needs:
- job: clang-tidy:configure-schedule-cuda
variables:
target_link_libraries(nblib PUBLIC legacy_api)
# TODO: Explicitly link specific modules.
target_link_libraries(nblib PRIVATE legacy_modules)
+if (GMX_OPENMP)
+ target_link_libraries(nblib PUBLIC OpenMP::OpenMP_CXX)
+endif()
install(TARGETS nblib
EXPORT nblib