]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Add CI for Cuda+Clang
authorDaniel Arndt <arndtd@ornl.gov>
Sat, 25 Feb 2023 15:41:09 +0000 (10:41 -0500)
committerDaniel Arndt <arndtd@ornl.gov>
Sat, 25 Feb 2023 15:41:09 +0000 (10:41 -0500)
.github/workflows/linux.yml

index 3cec3fd54a0a9a82f7e3d93c8f2d1b82d2376101..9423040ce168029a6afdc052e33822c7ce1cd64b 100644 (file)
@@ -216,6 +216,89 @@ jobs:
         make -j2 compile_test_executables
 
 
+  linux-debug-cuda-11-clang:
+    # simple parallel debug build using cuda-11 and clang
+
+    name: linux debug cuda-11 clang
+    runs-on: [ubuntu-20.04]
+
+    env:
+      CUDA_ROOT: /usr/local/cuda
+
+    steps:
+    - uses: actions/checkout@v3
+    - name: modules
+      run: |
+        wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
+        sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
+        sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub
+        sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
+        sudo apt-get install -y software-properties-common
+        sudo add-apt-repository ppa:ginggs/deal.ii-9.4.0-backports
+        sudo apt-get update
+        sudo apt-get install -yq --no-install-recommends \
+            cuda-toolkit-11-0 \
+            libp4est-dev \
+            libopenmpi-dev \
+            llvm \
+            numdiff \
+            openmpi-bin \
+            libboost-all-dev
+    - name: info
+      run: |
+        mpicc -v
+        cmake --version
+    - uses: actions/checkout@v3
+      with:
+        repository: kokkos/kokkos
+        ref: 3.7.00
+        path: kokkos
+    - name: compile and install kokkos
+      working-directory: kokkos
+      run: |
+        mkdir build
+        cd build
+        cmake -D BUILD_SHARED_LIBS=ON \
+              -D CMAKE_CXX_COMPILER=clang++ \
+              -D CMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/../kokkos-install \
+              -D Kokkos_ENABLE_CUDA=ON \
+              -D Kokkos_ARCH_VOLTA70=ON \
+              ..
+        make install
+    - name: configure deal.II
+      run: |
+        mkdir build
+        cd build
+        cmake -D CMAKE_BUILD_TYPE=Debug \
+              -D CMAKE_CXX_COMPILER=clang++ \
+              -D DEAL_II_FORCE_BUNDLED_BOOST=ON \
+              -D DEAL_II_CXX_FLAGS="-std=c++17" \
+              -D DEAL_II_EARLY_DEPRECATIONS=ON \
+              -D DEAL_II_WITH_CUDA="ON" \
+              -D DEAL_II_WITH_KOKKOS="ON" \
+              -D KOKKOS_DIR=${GITHUB_WORKSPACE}/../kokkos-install \
+              -D DEAL_II_WITH_MPI="ON" \
+              -D DEAL_II_MPI_WITH_DEVICE_SUPPORT="OFF" \
+              -D DEAL_II_WITH_P4EST="ON" \
+              -D DEAL_II_COMPONENT_EXAMPLES="ON" \
+              ..
+        cat detailed.log
+    - name: archive detailed.log
+      uses: actions/upload-artifact@v3
+      with:
+        name: linux-cuda-clang-detailed.log
+        path: build/detailed.log
+    - name: build deal.II
+      run: |
+        cd build
+        make VERBOSE=1 -j 2
+    - name: build CUDA tests
+      run: |
+        cd build
+        make -j 2 setup_tests_cuda
+        cd tests/cuda
+        make -j2 compile_test_executables
+
   linux-debug-intel-oneapi:
     # parallel debug build with Intel oneAPI including MPI and MKL
     #

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.