Update hipSYCL CI container
authorMark Abraham <mark.j.abraham@gmail.com>
Thu, 24 Jun 2021 14:49:45 +0000 (14:49 +0000)
committerMark Abraham <mark.j.abraham@gmail.com>
Thu, 24 Jun 2021 14:49:45 +0000 (14:49 +0000)
admin/containers/buildall.sh
admin/containers/scripted_gmx_docker_builds.py
admin/gitlab-ci/gromacs.matrix/gromacs.clang-11-cuda-11.2.gitlab-ci.yml
admin/gitlab-ci/gromacs.matrix/gromacs.hipsycl-dev.gitlab-ci.yml
admin/gitlab-ci/lint.gitlab-ci.yml
api/nblib/CMakeLists.txt

index fd045d8f4a25ed1f2a8f3942cd0c1b9f4f12dfbe..75d6292f0d730e954ef099753ac6ff780dd882d1 100755 (executable)
@@ -19,7 +19,7 @@ args[${#args[@]}]="--llvm 9 --clfft --mpi openmpi --rocm"
 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
index 3ed8cb7020cfa03a4b0d47ace8f1e1a0883fe6cb..4071663ef2f4bbda0ba58474bbb432ffd3f0c1af 100755 (executable)
@@ -116,7 +116,9 @@ _rocm_extra_packages = [
         'libelf1',
         'rocm-opencl',
         'rocm-dev',
-        'clinfo'
+        'clinfo',
+        'rocfft',
+        'hipfft',
 ]
                      
 
@@ -334,8 +336,7 @@ def get_hipsycl(args):
     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:
index 2c1988d21bd3b86d964fd77b259bfe217c733f96..f6745bc7dabe6fe8d4ca9bd6441d0953abcfbe97 100644 (file)
@@ -21,7 +21,7 @@ gromacs:clang-11-cuda-11.2:configure:
     - .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"
@@ -36,7 +36,7 @@ gromacs:clang-11-cuda-11.2:build:
     - .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:
@@ -46,7 +46,7 @@ gromacs:clang-11-cuda-11.2:test:
   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"
@@ -60,7 +60,7 @@ gromacs:clang-11-cuda-11.2:regressiontest:
   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"
index 808f6eaaea5cbccb0a3a5b1e84e0e3522557f542..93d645170c4e18adb4ef6260798515782d07a396 100644 (file)
@@ -7,7 +7,7 @@
 # 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
 
@@ -17,12 +17,17 @@ gromacs:hipsycl-dev:configure:
     - .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
@@ -34,7 +39,7 @@ gromacs:hipsycl-dev:build:
     - .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:
index 70ef8d871633f7061a5faa6c0dc3a0601024fc5c..db759624c8516df09d99f2e31d946578abbd5509 100644 (file)
@@ -30,7 +30,7 @@ clang-tidy:configure-schedule-cuda:
     - .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
@@ -58,7 +58,7 @@ clang-tidy:build-cuda:
     - .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:
index 1f4c5c28bc489e458540eab636883fe442b9e9ac..82e406d806952503736ca23ac5b909ea9137f0db 100644 (file)
@@ -112,6 +112,9 @@ target_link_libraries(nblib PRIVATE common)
 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