Skip to content

Commit 053fdd4

Browse files
committed
Build Kokkos with C++20 standard
1 parent 63e77c0 commit 053fdd4

File tree

4 files changed

+9
-9
lines changed

4 files changed

+9
-9
lines changed

.jenkins/continuous.groovy

+5-5
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ pipeline {
4242
dockerfile {
4343
filename "Dockerfile"
4444
dir "docker"
45-
additionalBuildArgs '--build-arg BASE=nvidia/cuda:12.0.1-devel-ubuntu22.04 --build-arg KOKKOS_VERSION=4.3.00 --build-arg KOKKOS_OPTIONS="-DCMAKE_CXX_EXTENSIONS=OFF -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_CUDA=ON -DKokkos_ARCH_VOLTA70=ON" --build-arg CUDA_AWARE_MPI=1'
45+
additionalBuildArgs '--build-arg BASE=nvidia/cuda:12.0.1-devel-ubuntu22.04 --build-arg KOKKOS_VERSION=4.3.00 --build-arg KOKKOS_OPTIONS="-DCMAKE_CXX_STANDARD=20 -DCMAKE_CXX_EXTENSIONS=OFF -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_CUDA=ON -DKokkos_ARCH_VOLTA70=ON" --build-arg CUDA_AWARE_MPI=1'
4646
args '-v /tmp/ccache:/tmp/ccache --env NVIDIA_VISIBLE_DEVICES=${NVIDIA_VISIBLE_DEVICES}'
4747
label 'NVIDIA_Tesla_V100-PCIE-32GB && nvidia-docker'
4848
}
@@ -103,7 +103,7 @@ pipeline {
103103
dockerfile {
104104
filename "Dockerfile"
105105
dir "docker"
106-
additionalBuildArgs '--build-arg BASE=nvidia/cuda:12.8.0-devel-ubuntu22.04 --build-arg KOKKOS_VERSION=4.4.00 --build-arg KOKKOS_OPTIONS="-DCMAKE_CXX_EXTENSIONS=OFF -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_OPENMP=ON -DKokkos_ENABLE_CUDA=ON -DKokkos_ARCH_VOLTA70=ON"'
106+
additionalBuildArgs '--build-arg BASE=nvidia/cuda:12.8.0-devel-ubuntu22.04 --build-arg KOKKOS_VERSION=4.4.00 --build-arg KOKKOS_OPTIONS="-DCMAKE_CXX_STANDARD=20 -DCMAKE_CXX_EXTENSIONS=OFF -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_OPENMP=ON -DKokkos_ENABLE_CUDA=ON -DKokkos_ARCH_VOLTA70=ON"'
107107
args '-v /tmp/ccache:/tmp/ccache --env NVIDIA_VISIBLE_DEVICES=${NVIDIA_VISIBLE_DEVICES}'
108108
label 'NVIDIA_Tesla_V100-PCIE-32GB && nvidia-docker'
109109
}
@@ -163,7 +163,7 @@ pipeline {
163163
dockerfile {
164164
filename "Dockerfile"
165165
dir "docker"
166-
additionalBuildArgs '--build-arg BASE=nvidia/cuda:12.0.1-devel-ubuntu18.04 --build-arg KOKKOS_VERSION="4.3.00" --build-arg KOKKOS_OPTIONS="-DCMAKE_CXX_EXTENSIONS=OFF -DCMAKE_CXX_COMPILER=clang++ -DKokkos_ENABLE_THREADS=ON -DKokkos_ENABLE_CUDA=ON -DKokkos_ARCH_VOLTA70=ON -DCMAKE_PREFIX_PATH=/usr/lib/x86_64-linux-gnu"'
166+
additionalBuildArgs '--build-arg BASE=nvidia/cuda:12.0.1-devel-ubuntu18.04 --build-arg KOKKOS_VERSION="4.3.00" --build-arg KOKKOS_OPTIONS="-DCMAKE_CXX_STANDARD=20 -DCMAKE_CXX_EXTENSIONS=OFF -DCMAKE_CXX_COMPILER=clang++ -DKokkos_ENABLE_THREADS=ON -DKokkos_ENABLE_CUDA=ON -DKokkos_ARCH_VOLTA70=ON -DCMAKE_PREFIX_PATH=/usr/lib/x86_64-linux-gnu"'
167167
args '-v /tmp/ccache:/tmp/ccache --env NVIDIA_VISIBLE_DEVICES=${NVIDIA_VISIBLE_DEVICES}'
168168
label 'NVIDIA_Tesla_V100-PCIE-32GB && nvidia-docker'
169169
}
@@ -221,7 +221,7 @@ pipeline {
221221
dockerfile {
222222
filename "Dockerfile"
223223
dir "docker"
224-
additionalBuildArgs '--build-arg BASE=ubuntu:18.04 --build-arg KOKKOS_VERSION=4.4.00 --build-arg KOKKOS_OPTIONS="-DCMAKE_CXX_EXTENSIONS=OFF -DKokkos_ENABLE_OPENMP=ON -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_PREFIX_PATH=/usr/lib/x86_64-linux-gnu"'
224+
additionalBuildArgs '--build-arg BASE=ubuntu:18.04 --build-arg KOKKOS_VERSION=4.4.00 --build-arg KOKKOS_OPTIONS="-DCMAKE_CXX_STANDARD=20 -DCMAKE_CXX_EXTENSIONS=OFF -DKokkos_ENABLE_OPENMP=ON -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_PREFIX_PATH=/usr/lib/x86_64-linux-gnu"'
225225
args '-v /tmp/ccache:/tmp/ccache'
226226
label 'docker'
227227
}
@@ -283,7 +283,7 @@ pipeline {
283283
dockerfile {
284284
filename "Dockerfile"
285285
dir "docker"
286-
additionalBuildArgs '--build-arg BASE=gcc:12.2.0 --build-arg KOKKOS_VERSION=4.4.00 --build-arg KOKKOS_OPTIONS="-DCMAKE_CXX_EXTENSIONS=OFF -DKokkos_ENABLE_OPENMP=ON -DCMAKE_CXX_COMPILER=g++ -DCMAKE_PREFIX_PATH=/usr/lib/x86_64-linux-gnu"'
286+
additionalBuildArgs '--build-arg BASE=gcc:12.2.0 --build-arg KOKKOS_VERSION=4.4.00 --build-arg KOKKOS_OPTIONS="-DCMAKE_CXX_STANDARD=20 -DCMAKE_CXX_EXTENSIONS=OFF -DKokkos_ENABLE_OPENMP=ON -DCMAKE_CXX_COMPILER=g++ -DCMAKE_PREFIX_PATH=/usr/lib/x86_64-linux-gnu"'
287287
args '-v /tmp/ccache:/tmp/ccache'
288288
label 'docker'
289289
}

docker/Dockerfile

+2-2
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ ENV LD_LIBRARY_PATH=/usr/local/cuda/targets/x86_64-linux/lib:${LD_LIBRARY_PATH}
132132

133133
# Install Kokkos
134134
ARG KOKKOS_VERSION=4.3.00
135-
ARG KOKKOS_OPTIONS="-DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_OPENMP=ON -DKokkos_ENABLE_CUDA=ON"
135+
ARG KOKKOS_OPTIONS="-DCMAKE_CXX_STANDARD=20 -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_OPENMP=ON -DKokkos_ENABLE_CUDA=ON"
136136
ENV KOKKOS_DIR=/opt/kokkos
137137
RUN KOKKOS_URL=https://github.com/kokkos/kokkos/archive/${KOKKOS_VERSION}.tar.gz && \
138138
KOKKOS_ARCHIVE=kokkos-${KOKKOS_HASH}.tar.gz && \
@@ -142,6 +142,6 @@ RUN KOKKOS_URL=https://github.com/kokkos/kokkos/archive/${KOKKOS_VERSION}.tar.gz
142142
tar -xf ${KOKKOS_ARCHIVE} -C kokkos --strip-components=1 && \
143143
cd kokkos && \
144144
mkdir -p build && cd build && \
145-
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=${KOKKOS_DIR} -D CMAKE_CXX_COMPILER=/scratch/kokkos/bin/nvcc_wrapper ${KOKKOS_OPTIONS} .. && \
145+
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_CXX_STANDARD=20 -D CMAKE_INSTALL_PREFIX=${KOKKOS_DIR} -D CMAKE_CXX_COMPILER=/scratch/kokkos/bin/nvcc_wrapper ${KOKKOS_OPTIONS} .. && \
146146
make -j${NPROCS} install && \
147147
rm -rf ${SCRATCH_DIR}

docker/Dockerfile.hipcc

+1-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ RUN SCRATCH_DIR=/scratch && mkdir -p ${SCRATCH_DIR} && cd ${SCRATCH_DIR} && \
9090

9191
# Install Kokkos
9292
ARG KOKKOS_VERSION=4.3.00
93-
ARG KOKKOS_OPTIONS="-DKokkos_ENABLE_HIP=ON -DKokkos_ENABLE_OPENMP=ON"
93+
ARG KOKKOS_OPTIONS="-DCMAKE_CXX_STANDARD=20 -DKokkos_ENABLE_HIP=ON -DKokkos_ENABLE_OPENMP=ON"
9494
ENV KOKKOS_DIR=/opt/kokkos
9595
RUN KOKKOS_URL=https://github.com/kokkos/kokkos/archive/${KOKKOS_VERSION}.tar.gz && \
9696
KOKKOS_ARCHIVE=kokkos-${KOKKOS_HASH}.tar.gz && \

docker/Dockerfile.sycl

+1-1
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ RUN SCRATCH_DIR=/scratch && mkdir -p ${SCRATCH_DIR} && cd ${SCRATCH_DIR} && \
128128

129129
# Install Kokkos
130130
ARG KOKKOS_VERSION=4.3.00
131-
ARG KOKKOS_OPTIONS="-DKokkos_ENABLE_SYCL=ON -DCMAKE_CXX_FLAGS=-Wno-unknown-cuda-version -DKokkos_ENABLE_UNSUPPORTED_ARCHS=ON -DKokkos_ARCH_VOLTA70=ON -DKOKKOS_IMPL_SYCL_DEVICE_GLOBAL_SUPPORTED=0 -DCMAKE_CXX_STANDARD=20 -DCMAKE_CXX_FLAGS=-w"
131+
ARG KOKKOS_OPTIONS="-DCMAKE_CXX_STANDARD=20 -DKokkos_ENABLE_SYCL=ON -DCMAKE_CXX_FLAGS=-Wno-unknown-cuda-version -DKokkos_ENABLE_UNSUPPORTED_ARCHS=ON -DKokkos_ARCH_VOLTA70=ON -DKOKKOS_IMPL_SYCL_DEVICE_GLOBAL_SUPPORTED=0 -DCMAKE_CXX_FLAGS=-w"
132132
ENV KOKKOS_DIR=/opt/kokkos
133133
RUN . /opt/intel/oneapi/setvars.sh --include-intel-llvm && \
134134
KOKKOS_URL=https://github.com/kokkos/kokkos/archive/${KOKKOS_VERSION}.tar.gz && \

0 commit comments

Comments
 (0)