From 5e47dd85f9c9218e080c9072ae858ba9090ea097 Mon Sep 17 00:00:00 2001 From: Gera Shegalov Date: Mon, 28 Mar 2022 14:50:21 -0700 Subject: [PATCH 01/15] wip --- build.sh | 31 ++++++++++++++++++++++++++++++- java/ci/build-in-docker.sh | 1 + java/pom.xml | 6 ++++-- 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/build.sh b/build.sh index 5fb957c80a6..52aaa4ca3bb 100755 --- a/build.sh +++ b/build.sh @@ -17,11 +17,12 @@ ARGS=$* # script, and that this script resides in the repo dir! REPODIR=$(cd $(dirname $0); pwd) -VALIDARGS="clean libcudf cudf dask_cudf benchmarks tests libcudf_kafka cudf_kafka custreamz -v -g -n -l --allgpuarch --disable_nvtx --show_depr_warn --ptds -h --build_metrics --incl_cache_stats" +VALIDARGS="clean libcudf libcudfjni cudf dask_cudf benchmarks tests libcudf_kafka cudf_kafka custreamz -v -g -n -l --allgpuarch --disable_nvtx --show_depr_warn --ptds -h --build_metrics --incl_cache_stats" HELP="$0 [clean] [libcudf] [cudf] [dask_cudf] [benchmarks] [tests] [libcudf_kafka] [cudf_kafka] [custreamz] [-v] [-g] [-n] [-h] [--cmake-args=\\\"\\\"] clean - remove all existing build artifacts and configuration (start over) libcudf - build the cudf C++ code only + libcudfni - build cudfjni, optionally with docker cudf - build the cudf Python package dask_cudf - build the dask_cudf Python package benchmarks - build benchmarks @@ -262,6 +263,34 @@ if buildAll || hasArg dask_cudf; then fi fi +if hasArg libcudfjni; then + set -x + cd ${REPODIR} + cudaVersion=11.5.0 + imageName=cudf-build:${cudaVersion}-devel-centos7 + docker build -f java/ci/Dockerfile.centos7 --build-arg CUDA_VERSION=${cudaVersion} -t $imageName . + CMAKE_GENERATOR=${CMAKE_GENERATOR:-Ninja} + echo CURRENT_DIR $PWD + nvidia-docker run -u $(id -u):$(id -g) \ + -v "/etc/group:/etc/group:ro" \ + -v "/etc/passwd:/etc/passwd:ro" \ + -v "/etc/shadow:/etc/shadow:ro" \ + -v "/etc/sudoers.d:/etc/sudoers.d:ro" \ + -v "$HOME:$HOME:rw" \ + --workdir $REPODIR/cpp/build \ + ${imageName} \ + cmake .. -G"${CMAKE_GENERATOR}" \ + -DCMAKE_CUDA_ARCHITECTURES=NATIVE \ + -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX \ + -DUSE_NVTX=$ENABLE_NVTX \ + -DCUDF_USE_ARROW_STATIC=ON \ + -DCUDF_ENABLE_ARROW_S3=OFF \ + -DBUILD_TESTS=$BUILD_CPP_TESTS \ + -DPER_THREAD_DEFAULT_STREAM=$ENABLE_PTDS \ + -DRMM_LOGGING_LEVEL=$RMM_LOGGING_LEVEL \ + -DBUILD_SHARED_LIBS=OFF +fi + # Build libcudf_kafka library if hasArg libcudf_kafka; then cmake -S $REPODIR/cpp/libcudf_kafka -B ${KAFKA_LIB_BUILD_DIR} \ diff --git a/java/ci/build-in-docker.sh b/java/ci/build-in-docker.sh index ac8b2584091..a559b303993 100755 --- a/java/ci/build-in-docker.sh +++ b/java/ci/build-in-docker.sh @@ -55,6 +55,7 @@ rm -rf "$WORKSPACE/cpp/build" mkdir -p "$WORKSPACE/cpp/build" cd "$WORKSPACE/cpp/build" cmake .. -G"${CMAKE_GENERATOR}" \ + -DCMAKE_CUDA_ARCHITECTURES=NATIVE \ -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX \ -DUSE_NVTX=$ENABLE_NVTX \ -DCUDF_USE_ARROW_STATIC=ON \ diff --git a/java/pom.xml b/java/pom.xml index d2104269c2c..e8bc20e8b96 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -395,8 +395,10 @@ - + executable="cmake"> + + + From aa38791c1340d427098aaca9d15b73cad8e577f4 Mon Sep 17 00:00:00 2001 From: Gera Shegalov Date: Fri, 1 Apr 2022 16:23:59 -0700 Subject: [PATCH 02/15] Automate build of a statically-linked cudf JAR Signed-off-by: Gera Shegalov --- build.sh | 80 +++++++++++++++++++++++++------------- java/ci/Dockerfile.centos7 | 14 +++---- java/pom.xml | 4 +- 3 files changed, 62 insertions(+), 36 deletions(-) diff --git a/build.sh b/build.sh index 52aaa4ca3bb..af1a3dffca4 100755 --- a/build.sh +++ b/build.sh @@ -17,13 +17,13 @@ ARGS=$* # script, and that this script resides in the repo dir! REPODIR=$(cd $(dirname $0); pwd) -VALIDARGS="clean libcudf libcudfjni cudf dask_cudf benchmarks tests libcudf_kafka cudf_kafka custreamz -v -g -n -l --allgpuarch --disable_nvtx --show_depr_warn --ptds -h --build_metrics --incl_cache_stats" +VALIDARGS="clean libcudf cudf cudfjar dask_cudf benchmarks tests libcudf_kafka cudf_kafka custreamz -v -g -n -l --allgpuarch --disable_nvtx --show_depr_warn --ptds -h --build_metrics --incl_cache_stats" HELP="$0 [clean] [libcudf] [cudf] [dask_cudf] [benchmarks] [tests] [libcudf_kafka] [cudf_kafka] [custreamz] [-v] [-g] [-n] [-h] [--cmake-args=\\\"\\\"] clean - remove all existing build artifacts and configuration (start over) libcudf - build the cudf C++ code only - libcudfni - build cudfjni, optionally with docker cudf - build the cudf Python package + cudfjar - build cudf JAR with static libcudf using devtoolset-9 toolchain dask_cudf - build the dask_cudf Python package benchmarks - build benchmarks tests - build tests @@ -102,6 +102,54 @@ function buildAll { ((${NUMARGS} == 0 )) || !(echo " ${ARGS} " | grep -q " [^-]\+ ") } +function buildLibCudfJniInDocker { + local cudaVersion=11.5.0 + local imageName=cudf-build:${cudaVersion}-devel-centos7 + local CMAKE_GENERATOR=${CMAKE_GENERATOR:-Ninja} + local workspaceDir=/rapids + + mkdir -p "$REPODIR/cpp/build" + nvidia-docker build \ + -f java/ci/Dockerfile.centos7 \ + --build-arg CUDA_VERSION=${cudaVersion} \ + -t $imageName . + nvidia-docker run -it -u $(id -u):$(id -g) \ + -v "/etc/group:/etc/group:ro" \ + -v "/etc/passwd:/etc/passwd:ro" \ + -v "/etc/shadow:/etc/shadow:ro" \ + -v "/etc/sudoers.d:/etc/sudoers.d:ro" \ + -v "$REPODIR:/rapids:rw" \ + --workdir "$workspaceDir/cpp/build" \ + ${imageName} \ + scl enable devtoolset-9 \ + "cmake .. \ + -G${CMAKE_GENERATOR} \ + -DCUDA_STATIC_RUNTIME=ON \ + -DCMAKE_CUDA_ARCHITECTURES=NATIVE \ + -DCMAKE_INSTALL_PREFIX==/usr/local/rapids \ + -DUSE_NVTX=ON -DCUDF_USE_ARROW_STATIC=ON \ + -DCUDF_ENABLE_ARROW_S3=OFF \ + -DBUILD_TESTS=OFF \ + -DPER_THREAD_DEFAULT_STREAM=ON \ + -DRMM_LOGGING_LEVEL=OFF \ + -DBUILD_SHARED_LIBS=OFF && \ + cmake --build . --parallel ${PARALLEL_LEVEL} && \ + cd $workspaceDir/java && \ + mvn ${MVN_PHASES:-"clean package"} \ + -Dmaven.repo.local=$workspaceDir/.m2 \ + -DskipTests=${SKIP_TESTS:-false} \ + -Dparallel.level=${PARALLEL_LEVEL} \ + -DCUDF_CPP_BUILD_DIR=$workspaceDir/cpp/build \ + -DCUDA_STATIC_RUNTIME=ON \ + -DPER_THREAD_DEFAULT_STREAM=ON \ + -DRMM_LOGGING_LEVEL=OFF \ + -DUSE_GDS=OFF \ + -DGPU_ARCHS=NATIVE \ + -DCUDF_JNI_ARROW_STATIC=ON \ + -DCUDF_JNI_LIBCUDF_STATIC=ON \ + -Dtest=*,!CuFileTest" +} + if hasArg -h || hasArg --h || hasArg --help; then echo "${HELP}" exit 0 @@ -263,32 +311,8 @@ if buildAll || hasArg dask_cudf; then fi fi -if hasArg libcudfjni; then - set -x - cd ${REPODIR} - cudaVersion=11.5.0 - imageName=cudf-build:${cudaVersion}-devel-centos7 - docker build -f java/ci/Dockerfile.centos7 --build-arg CUDA_VERSION=${cudaVersion} -t $imageName . - CMAKE_GENERATOR=${CMAKE_GENERATOR:-Ninja} - echo CURRENT_DIR $PWD - nvidia-docker run -u $(id -u):$(id -g) \ - -v "/etc/group:/etc/group:ro" \ - -v "/etc/passwd:/etc/passwd:ro" \ - -v "/etc/shadow:/etc/shadow:ro" \ - -v "/etc/sudoers.d:/etc/sudoers.d:ro" \ - -v "$HOME:$HOME:rw" \ - --workdir $REPODIR/cpp/build \ - ${imageName} \ - cmake .. -G"${CMAKE_GENERATOR}" \ - -DCMAKE_CUDA_ARCHITECTURES=NATIVE \ - -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX \ - -DUSE_NVTX=$ENABLE_NVTX \ - -DCUDF_USE_ARROW_STATIC=ON \ - -DCUDF_ENABLE_ARROW_S3=OFF \ - -DBUILD_TESTS=$BUILD_CPP_TESTS \ - -DPER_THREAD_DEFAULT_STREAM=$ENABLE_PTDS \ - -DRMM_LOGGING_LEVEL=$RMM_LOGGING_LEVEL \ - -DBUILD_SHARED_LIBS=OFF +if hasArg cudfjar; then + buildLibCudfJniInDocker fi # Build libcudf_kafka library diff --git a/java/ci/Dockerfile.centos7 b/java/ci/Dockerfile.centos7 index c1d29468f65..6c63d5ca0bb 100644 --- a/java/ci/Dockerfile.centos7 +++ b/java/ci/Dockerfile.centos7 @@ -33,16 +33,16 @@ RUN yum install -y git zlib-devel maven tar wget patch ninja-build ## pre-create the CMAKE_INSTALL_PREFIX folder, set writable by any user for Jenkins RUN mkdir /usr/local/rapids && mkdir /rapids && chmod 777 /usr/local/rapids && chmod 777 /rapids -ARG CMAKE_VERSION=3.20.5 +ARG CMAKE_VERSION=3.22.3 RUN cd /usr/local/ && wget --quiet https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-x86_64.tar.gz && \ tar zxf cmake-${CMAKE_VERSION}-linux-x86_64.tar.gz && \ rm cmake-${CMAKE_VERSION}-linux-x86_64.tar.gz ENV PATH /usr/local/cmake-${CMAKE_VERSION}-linux-x86_64/bin:$PATH # get GDS user-space lib -ARG GDS_VERSION=1.0.0 -RUN cd /tmp/ && wget https://developer.download.nvidia.com/gds/redist/rel-${GDS_VERSION}/gds-redistrib-${GDS_VERSION}.tgz && \ - tar zxf gds-redistrib-${GDS_VERSION}.tgz && \ - cp -R ./gds-redistrib-${GDS_VERSION}/targets/x86_64-linux/lib/* /usr/local/cuda/targets/x86_64-linux/lib && \ - cp -R ./gds-redistrib-${GDS_VERSION}/targets/x86_64-linux/include/* /usr/local/cuda/targets/x86_64-linux/include && \ - rm -rf gds-redistrib-* +# ARG GDS_VERSION=1.0.0 +# RUN cd /tmp/ && wget https://developer.download.nvidia.com/gds/redist/rel-${GDS_VERSION}/gds-redistrib-${GDS_VERSION}.tgz && \ +# tar zxf gds-redistrib-${GDS_VERSION}.tgz && \ +# cp -R ./gds-redistrib-${GDS_VERSION}/targets/x86_64-linux/lib/* /usr/local/cuda/targets/x86_64-linux/lib && \ +# cp -R ./gds-redistrib-${GDS_VERSION}/targets/x86_64-linux/include/* /usr/local/cuda/targets/x86_64-linux/include && \ +# rm -rf gds-redistrib-* diff --git a/java/pom.xml b/java/pom.xml index e8bc20e8b96..e0ecfbcac52 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -173,6 +173,7 @@ ${project.build.directory}/cmake-build 1.7.30 0.15.1 + 4 @@ -398,7 +399,8 @@ executable="cmake"> - + + From 3d368815ab20ba0916a274ef3c8ced03d2f1e02d Mon Sep 17 00:00:00 2001 From: Gera Shegalov Date: Fri, 1 Apr 2022 16:46:41 -0700 Subject: [PATCH 03/15] Don't hardcode GPU arch Signed-off-by: Gera Shegalov --- build.sh | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/build.sh b/build.sh index af1a3dffca4..d26bf3633db 100755 --- a/build.sh +++ b/build.sh @@ -113,7 +113,7 @@ function buildLibCudfJniInDocker { -f java/ci/Dockerfile.centos7 \ --build-arg CUDA_VERSION=${cudaVersion} \ -t $imageName . - nvidia-docker run -it -u $(id -u):$(id -g) \ + nvidia-docker run -it -u $(id -u):$(id -g) --rm \ -v "/etc/group:/etc/group:ro" \ -v "/etc/passwd:/etc/passwd:ro" \ -v "/etc/shadow:/etc/shadow:ro" \ @@ -125,7 +125,7 @@ function buildLibCudfJniInDocker { "cmake .. \ -G${CMAKE_GENERATOR} \ -DCUDA_STATIC_RUNTIME=ON \ - -DCMAKE_CUDA_ARCHITECTURES=NATIVE \ + -DCMAKE_CUDA_ARCHITECTURES=${CUDF_CMAKE_CUDA_ARCHITECTURES} \ -DCMAKE_INSTALL_PREFIX==/usr/local/rapids \ -DUSE_NVTX=ON -DCUDF_USE_ARROW_STATIC=ON \ -DCUDF_ENABLE_ARROW_S3=OFF \ @@ -144,7 +144,7 @@ function buildLibCudfJniInDocker { -DPER_THREAD_DEFAULT_STREAM=ON \ -DRMM_LOGGING_LEVEL=OFF \ -DUSE_GDS=OFF \ - -DGPU_ARCHS=NATIVE \ + -DGPU_ARCHS=${CUDF_CMAKE_CUDA_ARCHITECTURES} \ -DCUDF_JNI_ARROW_STATIC=ON \ -DCUDF_JNI_LIBCUDF_STATIC=ON \ -Dtest=*,!CuFileTest" @@ -227,15 +227,17 @@ fi ################################################################################ # Configure, build, and install libcudf -if buildAll || hasArg libcudf; then +if buildAll || hasArg libcudf || hasArg cudfjar; then if (( ${BUILD_ALL_GPU_ARCH} == 0 )); then - CUDF_CMAKE_CUDA_ARCHITECTURES="-DCMAKE_CUDA_ARCHITECTURES=NATIVE" + CUDF_CMAKE_CUDA_ARCHITECTURES="NATIVE" echo "Building for the architecture of the GPU in the system..." else - CUDF_CMAKE_CUDA_ARCHITECTURES="-DCMAKE_CUDA_ARCHITECTURES=ALL" + CUDF_CMAKE_CUDA_ARCHITECTURES="ALL" echo "Building for *ALL* supported GPU architectures..." fi +fi +if buildAll || hasArg libcudf; then # get the current count before the compile starts if [[ "$BUILD_REPORT_INCL_CACHE_STATS" == "ON" && -x "$(command -v sccache)" ]]; then # zero the sccache statistics @@ -244,7 +246,7 @@ if buildAll || hasArg libcudf; then cmake -S $REPODIR/cpp -B ${LIB_BUILD_DIR} \ -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \ - ${CUDF_CMAKE_CUDA_ARCHITECTURES} \ + -DCMAKE_CUDA_ARCHITECTURES=${CUDF_CMAKE_CUDA_ARCHITECTURES} \ -DUSE_NVTX=${BUILD_NVTX} \ -DBUILD_TESTS=${BUILD_TESTS} \ -DBUILD_BENCHMARKS=${BUILD_BENCHMARKS} \ From 7c07da4cabf7bdaf7627a309c0d88badbb9fa05e Mon Sep 17 00:00:00 2001 From: Gera Shegalov Date: Fri, 1 Apr 2022 17:11:29 -0700 Subject: [PATCH 04/15] undo unnecessary changes --- build.sh | 2 +- java/ci/Dockerfile.centos7 | 8 -------- java/ci/build-in-docker.sh | 1 - 3 files changed, 1 insertion(+), 10 deletions(-) diff --git a/build.sh b/build.sh index d26bf3633db..1c83e8ed71b 100755 --- a/build.sh +++ b/build.sh @@ -143,7 +143,7 @@ function buildLibCudfJniInDocker { -DCUDA_STATIC_RUNTIME=ON \ -DPER_THREAD_DEFAULT_STREAM=ON \ -DRMM_LOGGING_LEVEL=OFF \ - -DUSE_GDS=OFF \ + -DUSE_GDS=ON \ -DGPU_ARCHS=${CUDF_CMAKE_CUDA_ARCHITECTURES} \ -DCUDF_JNI_ARROW_STATIC=ON \ -DCUDF_JNI_LIBCUDF_STATIC=ON \ diff --git a/java/ci/Dockerfile.centos7 b/java/ci/Dockerfile.centos7 index 6c63d5ca0bb..7073ca0f803 100644 --- a/java/ci/Dockerfile.centos7 +++ b/java/ci/Dockerfile.centos7 @@ -38,11 +38,3 @@ RUN cd /usr/local/ && wget --quiet https://github.com/Kitware/CMake/releases/dow tar zxf cmake-${CMAKE_VERSION}-linux-x86_64.tar.gz && \ rm cmake-${CMAKE_VERSION}-linux-x86_64.tar.gz ENV PATH /usr/local/cmake-${CMAKE_VERSION}-linux-x86_64/bin:$PATH - -# get GDS user-space lib -# ARG GDS_VERSION=1.0.0 -# RUN cd /tmp/ && wget https://developer.download.nvidia.com/gds/redist/rel-${GDS_VERSION}/gds-redistrib-${GDS_VERSION}.tgz && \ -# tar zxf gds-redistrib-${GDS_VERSION}.tgz && \ -# cp -R ./gds-redistrib-${GDS_VERSION}/targets/x86_64-linux/lib/* /usr/local/cuda/targets/x86_64-linux/lib && \ -# cp -R ./gds-redistrib-${GDS_VERSION}/targets/x86_64-linux/include/* /usr/local/cuda/targets/x86_64-linux/include && \ -# rm -rf gds-redistrib-* diff --git a/java/ci/build-in-docker.sh b/java/ci/build-in-docker.sh index d159154687d..75435319c91 100755 --- a/java/ci/build-in-docker.sh +++ b/java/ci/build-in-docker.sh @@ -55,7 +55,6 @@ rm -rf "$WORKSPACE/cpp/build" mkdir -p "$WORKSPACE/cpp/build" cd "$WORKSPACE/cpp/build" cmake .. -G"${CMAKE_GENERATOR}" \ - -DCMAKE_CUDA_ARCHITECTURES=NATIVE \ -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX \ -DUSE_NVTX=$ENABLE_NVTX \ -DCUDF_USE_ARROW_STATIC=ON \ From f90cc6c228776d04095d9da3c124ded9d026b80d Mon Sep 17 00:00:00 2001 From: Gera Shegalov Date: Fri, 1 Apr 2022 17:25:17 -0700 Subject: [PATCH 05/15] allow overriding arch --- build.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/build.sh b/build.sh index 1c83e8ed71b..b6e37bfae94 100755 --- a/build.sh +++ b/build.sh @@ -229,8 +229,12 @@ fi if buildAll || hasArg libcudf || hasArg cudfjar; then if (( ${BUILD_ALL_GPU_ARCH} == 0 )); then - CUDF_CMAKE_CUDA_ARCHITECTURES="NATIVE" - echo "Building for the architecture of the GPU in the system..." + CUDF_CMAKE_CUDA_ARCHITECTURES="${CUDF_CMAKE_CUDA_ARCHITECTURES:-NATIVE}" + if [[ "$CUDF_CMAKE_CUDA_ARCHITECTURES" == "NATIVE" ]]; then + echo "Building for the architecture of the GPU in the system..." + else + echo "Building for the GPU architecture(s) $CUDF_CMAKE_CUDA_ARCHITECTURES ..." + fi else CUDF_CMAKE_CUDA_ARCHITECTURES="ALL" echo "Building for *ALL* supported GPU architectures..." From 771599181317e5a5d6b37e64815cbc90054a9b37 Mon Sep 17 00:00:00 2001 From: Gera Shegalov Date: Mon, 4 Apr 2022 10:42:08 -0700 Subject: [PATCH 06/15] Update build.sh Co-authored-by: Jason Lowe --- build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sh b/build.sh index b6e37bfae94..1f25e4c05a8 100755 --- a/build.sh +++ b/build.sh @@ -23,7 +23,7 @@ HELP="$0 [clean] [libcudf] [cudf] [dask_cudf] [benchmarks] [tests] [libcudf_kafk over) libcudf - build the cudf C++ code only cudf - build the cudf Python package - cudfjar - build cudf JAR with static libcudf using devtoolset-9 toolchain + cudfjar - build cudf JAR with static libcudf using devtoolset toolchain dask_cudf - build the dask_cudf Python package benchmarks - build benchmarks tests - build tests From e6eee323519cea08ba1548824684f42182adb904 Mon Sep 17 00:00:00 2001 From: Gera Shegalov Date: Mon, 4 Apr 2022 21:36:48 -0700 Subject: [PATCH 07/15] Dedicated cpp build dir for cudf jar - and fix bug of CUDF_CPP_BUILD_DIR parameter being ignored Signed-off-by: Gera Shegalov --- build.sh | 26 ++++++++++++++------------ java/ci/Dockerfile.centos7 | 2 +- java/src/main/native/CMakeLists.txt | 10 ++++++---- 3 files changed, 21 insertions(+), 17 deletions(-) diff --git a/build.sh b/build.sh index 1f25e4c05a8..1fbe4eae005 100755 --- a/build.sh +++ b/build.sh @@ -18,7 +18,7 @@ ARGS=$* REPODIR=$(cd $(dirname $0); pwd) VALIDARGS="clean libcudf cudf cudfjar dask_cudf benchmarks tests libcudf_kafka cudf_kafka custreamz -v -g -n -l --allgpuarch --disable_nvtx --show_depr_warn --ptds -h --build_metrics --incl_cache_stats" -HELP="$0 [clean] [libcudf] [cudf] [dask_cudf] [benchmarks] [tests] [libcudf_kafka] [cudf_kafka] [custreamz] [-v] [-g] [-n] [-h] [--cmake-args=\\\"\\\"] +HELP="$0 [clean] [libcudf] [cudf] [cudfjar] [dask_cudf] [benchmarks] [tests] [libcudf_kafka] [cudf_kafka] [custreamz] [-v] [-g] [-n] [-h] [--cmake-args=\\\"\\\"] clean - remove all existing build artifacts and configuration (start over) libcudf - build the cudf C++ code only @@ -51,7 +51,9 @@ CUDF_KAFKA_BUILD_DIR=${REPODIR}/python/cudf_kafka/build CUDF_BUILD_DIR=${REPODIR}/python/cudf/build DASK_CUDF_BUILD_DIR=${REPODIR}/python/dask_cudf/build CUSTREAMZ_BUILD_DIR=${REPODIR}/python/custreamz/build -BUILD_DIRS="${LIB_BUILD_DIR} ${CUDF_BUILD_DIR} ${DASK_CUDF_BUILD_DIR} ${KAFKA_LIB_BUILD_DIR} ${CUDF_KAFKA_BUILD_DIR} ${CUSTREAMZ_BUILD_DIR}" +CUDF_JAR_JAVA_BUILD_DIR="$REPODIR/java/target" + +BUILD_DIRS="${LIB_BUILD_DIR} ${CUDF_BUILD_DIR} ${DASK_CUDF_BUILD_DIR} ${KAFKA_LIB_BUILD_DIR} ${CUDF_KAFKA_BUILD_DIR} ${CUSTREAMZ_BUILD_DIR} ${CUDF_JAR_JAVA_BUILD_DIR}" # Set defaults for vars modified by flags to this script VERBOSE_FLAG="" @@ -103,12 +105,11 @@ function buildAll { } function buildLibCudfJniInDocker { - local cudaVersion=11.5.0 - local imageName=cudf-build:${cudaVersion}-devel-centos7 - local CMAKE_GENERATOR=${CMAKE_GENERATOR:-Ninja} - local workspaceDir=/rapids - - mkdir -p "$REPODIR/cpp/build" + local cudaVersion="11.5.0" + local imageName="cudf-build:${cudaVersion}-devel-centos7" + local CMAKE_GENERATOR="${CMAKE_GENERATOR:-Ninja}" + local workspaceDir="/rapids" + mkdir -p "$CUDF_JAR_JAVA_BUILD_DIR/libcudf-cmake-build" nvidia-docker build \ -f java/ci/Dockerfile.centos7 \ --build-arg CUDA_VERSION=${cudaVersion} \ @@ -119,11 +120,12 @@ function buildLibCudfJniInDocker { -v "/etc/shadow:/etc/shadow:ro" \ -v "/etc/sudoers.d:/etc/sudoers.d:ro" \ -v "$REPODIR:/rapids:rw" \ - --workdir "$workspaceDir/cpp/build" \ + --workdir "$workspaceDir/java/target/libcudf-cmake-build" \ ${imageName} \ scl enable devtoolset-9 \ - "cmake .. \ + "cmake $workspaceDir/cpp \ -G${CMAKE_GENERATOR} \ + -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ -DCUDA_STATIC_RUNTIME=ON \ -DCMAKE_CUDA_ARCHITECTURES=${CUDF_CMAKE_CUDA_ARCHITECTURES} \ -DCMAKE_INSTALL_PREFIX==/usr/local/rapids \ @@ -135,11 +137,11 @@ function buildLibCudfJniInDocker { -DBUILD_SHARED_LIBS=OFF && \ cmake --build . --parallel ${PARALLEL_LEVEL} && \ cd $workspaceDir/java && \ - mvn ${MVN_PHASES:-"clean package"} \ + mvn -X ${MVN_PHASES:-"package"} \ -Dmaven.repo.local=$workspaceDir/.m2 \ -DskipTests=${SKIP_TESTS:-false} \ -Dparallel.level=${PARALLEL_LEVEL} \ - -DCUDF_CPP_BUILD_DIR=$workspaceDir/cpp/build \ + -DCUDF_CPP_BUILD_DIR=$workspaceDir/java/target/libcudf-cmake-build \ -DCUDA_STATIC_RUNTIME=ON \ -DPER_THREAD_DEFAULT_STREAM=ON \ -DRMM_LOGGING_LEVEL=OFF \ diff --git a/java/ci/Dockerfile.centos7 b/java/ci/Dockerfile.centos7 index 7073ca0f803..dc8c0e4a95b 100644 --- a/java/ci/Dockerfile.centos7 +++ b/java/ci/Dockerfile.centos7 @@ -1,5 +1,5 @@ # -# Copyright (c) 2020-2021, NVIDIA CORPORATION. All rights reserved. +# Copyright (c) 2020-2022, NVIDIA CORPORATION. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/java/src/main/native/CMakeLists.txt b/java/src/main/native/CMakeLists.txt index f34b998d01e..dfcb5971ae3 100755 --- a/java/src/main/native/CMakeLists.txt +++ b/java/src/main/native/CMakeLists.txt @@ -52,10 +52,12 @@ message(VERBOSE "CUDF_JNI: Build with static Arrow library: ${CUDF_JNI_ARROW_STA message(VERBOSE "CUDF_JNI: Link with libcudf statically: ${CUDF_JNI_LIBCUDF_STATIC}") set(CUDF_SOURCE_DIR "${PROJECT_SOURCE_DIR}/../../../../cpp") -if(DEFINED ENV{CUDF_CPP_BUILD_DIR}) - set(CUDF_CPP_BUILD_DIR "$ENV{CUDF_CPP_BUILD_DIR}") -else() - set(CUDF_CPP_BUILD_DIR "${CUDF_SOURCE_DIR}/build") +if(NOT DEFINED CUDF_CPP_BUILD_DIR) + if(DEFINED ENV{CUDF_CPP_BUILD_DIR}) + set(CUDF_CPP_BUILD_DIR "$ENV{CUDF_CPP_BUILD_DIR}") + else() + set(CUDF_CPP_BUILD_DIR "${CUDF_SOURCE_DIR}/build") + endif() endif() set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/" From 939fba83621a9b72ea26236e13e304c0f1569d40 Mon Sep 17 00:00:00 2001 From: Gera Shegalov Date: Mon, 4 Apr 2022 23:23:31 -0700 Subject: [PATCH 08/15] Default CUDF_CPP_BUILD_DIR="" in pom.xml Signed-off-by: Gera Shegalov --- build.sh | 2 +- java/pom.xml | 1 + java/src/main/native/CMakeLists.txt | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/build.sh b/build.sh index 1fbe4eae005..e83695b15ff 100755 --- a/build.sh +++ b/build.sh @@ -137,7 +137,7 @@ function buildLibCudfJniInDocker { -DBUILD_SHARED_LIBS=OFF && \ cmake --build . --parallel ${PARALLEL_LEVEL} && \ cd $workspaceDir/java && \ - mvn -X ${MVN_PHASES:-"package"} \ + mvn ${MVN_PHASES:-"package"} \ -Dmaven.repo.local=$workspaceDir/.m2 \ -DskipTests=${SKIP_TESTS:-false} \ -Dparallel.level=${PARALLEL_LEVEL} \ diff --git a/java/pom.xml b/java/pom.xml index e0ecfbcac52..ca4497bbd70 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -174,6 +174,7 @@ 1.7.30 0.15.1 4 + diff --git a/java/src/main/native/CMakeLists.txt b/java/src/main/native/CMakeLists.txt index 2a60d022fb0..7b7e1244692 100755 --- a/java/src/main/native/CMakeLists.txt +++ b/java/src/main/native/CMakeLists.txt @@ -52,7 +52,7 @@ message(VERBOSE "CUDF_JNI: Build with static Arrow library: ${CUDF_JNI_ARROW_STA message(VERBOSE "CUDF_JNI: Link with libcudf statically: ${CUDF_JNI_LIBCUDF_STATIC}") set(CUDF_SOURCE_DIR "${PROJECT_SOURCE_DIR}/../../../../cpp") -if(NOT DEFINED CUDF_CPP_BUILD_DIR) +if(NOT DEFINED CUDF_CPP_BUILD_DIR OR CUDF_CPP_BUILD_DIR STREQUAL "") if(DEFINED ENV{CUDF_CPP_BUILD_DIR}) set(CUDF_CPP_BUILD_DIR "$ENV{CUDF_CPP_BUILD_DIR}") else() From 6eda7a9f980ef1b392dd0f2f52f98d78bac6dc37 Mon Sep 17 00:00:00 2001 From: Gera Shegalov Date: Wed, 4 May 2022 02:38:17 -0700 Subject: [PATCH 09/15] wip --- build.sh | 12 ++++++++++-- java/ci/Dockerfile.centos7 | 12 ++++++++++++ java/pom.xml | 1 + 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/build.sh b/build.sh index 48182ca1a6f..f048a00db24 100755 --- a/build.sh +++ b/build.sh @@ -112,16 +112,20 @@ function buildLibCudfJniInDocker { local localMavenRepo=${LOCAL_MAVEN_REPO:-"$HOME/.m2/repository"} local workspaceRepoDir="$workspaceDir/cudf" local workspaceMavenRepoDir="$workspaceDir/.m2/repository" + local workspaceCcacheDir="$workspaceDir/.ccache" mkdir -p "$CUDF_JAR_JAVA_BUILD_DIR/libcudf-cmake-build" + mkdir -p "$HOME/.ccache" "$HOME/.m2" nvidia-docker build \ -f java/ci/Dockerfile.centos7 \ --build-arg CUDA_VERSION=${cudaVersion} \ -t $imageName . nvidia-docker run -it -u $(id -u):$(id -g) --rm \ + -e CCACHE_DIR="$workspaceCcacheDir" \ -v "/etc/group:/etc/group:ro" \ -v "/etc/passwd:/etc/passwd:ro" \ -v "/etc/shadow:/etc/shadow:ro" \ -v "/etc/sudoers.d:/etc/sudoers.d:ro" \ + -v "$HOME/.ccache:$workspaceCcacheDir:rw" \ -v "$REPODIR:$workspaceRepoDir:rw" \ -v "$localMavenRepo:$workspaceMavenRepoDir:rw" \ --workdir "$workspaceRepoDir/java/target/libcudf-cmake-build" \ @@ -129,11 +133,15 @@ function buildLibCudfJniInDocker { scl enable devtoolset-9 \ "cmake $workspaceRepoDir/cpp \ -G${CMAKE_GENERATOR} \ + -DCMAKE_C_COMPILER_LAUNCHER=ccache \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache \ -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ -DCUDA_STATIC_RUNTIME=ON \ -DCMAKE_CUDA_ARCHITECTURES=${CUDF_CMAKE_CUDA_ARCHITECTURES} \ - -DCMAKE_INSTALL_PREFIX==/usr/local/rapids \ - -DUSE_NVTX=ON -DCUDF_USE_ARROW_STATIC=ON \ + -DCMAKE_INSTALL_PREFIX=/usr/local/rapids \ + -DUSE_NVTX=ON \ + -DCUDF_USE_ARROW_STATIC=ON \ -DCUDF_ENABLE_ARROW_S3=OFF \ -DBUILD_TESTS=OFF \ -DPER_THREAD_DEFAULT_STREAM=ON \ diff --git a/java/ci/Dockerfile.centos7 b/java/ci/Dockerfile.centos7 index dc8c0e4a95b..94f68a79e22 100644 --- a/java/ci/Dockerfile.centos7 +++ b/java/ci/Dockerfile.centos7 @@ -37,4 +37,16 @@ ARG CMAKE_VERSION=3.22.3 RUN cd /usr/local/ && wget --quiet https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-x86_64.tar.gz && \ tar zxf cmake-${CMAKE_VERSION}-linux-x86_64.tar.gz && \ rm cmake-${CMAKE_VERSION}-linux-x86_64.tar.gz + ENV PATH /usr/local/cmake-${CMAKE_VERSION}-linux-x86_64/bin:$PATH + +ARG CCACHE_VERSION=4.6 +RUN cd /tmp && wget --quiet https://github.com/ccache/ccache/releases/download/v${CCACHE_VERSION}/ccache-${CCACHE_VERSION}.tar.gz && \ + tar zxf ccache-${CCACHE_VERSION}.tar.gz && \ + rm ccache-${CCACHE_VERSION}.tar.gz && \ + cd ccache-${CCACHE_VERSION} && \ + mkdir build && \ + cd build && \ + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/opt/rh/devtoolset-9/root/usr/bin/gcc .. && \ + cmake --build . && \ + cmake --build . --target install \ No newline at end of file diff --git a/java/pom.xml b/java/pom.xml index 50b6ca59440..0c0f378ebbe 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -382,6 +382,7 @@ failonerror="true" executable="cmake"> + From ce2afb89e291b4b7857b4d6a49832c1465d20cc3 Mon Sep 17 00:00:00 2001 From: Gera Shegalov Date: Wed, 4 May 2022 10:44:54 -0700 Subject: [PATCH 10/15] DEVTOOLSET Version, simpler ccache integration Signed-off-by: Gera Shegalov --- build.sh | 6 ++++++ java/ci/Dockerfile.centos7 | 11 ++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/build.sh b/build.sh index f048a00db24..62a996b5c7e 100755 --- a/build.sh +++ b/build.sh @@ -120,6 +120,7 @@ function buildLibCudfJniInDocker { --build-arg CUDA_VERSION=${cudaVersion} \ -t $imageName . nvidia-docker run -it -u $(id -u):$(id -g) --rm \ + -e PARALLEL_LEVEL \ -e CCACHE_DIR="$workspaceCcacheDir" \ -v "/etc/group:/etc/group:ro" \ -v "/etc/passwd:/etc/passwd:ro" \ @@ -136,6 +137,7 @@ function buildLibCudfJniInDocker { -DCMAKE_C_COMPILER_LAUNCHER=ccache \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache \ + -DCMAKE_LINKER_CXX_LAUNCHER=ccache \ -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ -DCUDA_STATIC_RUNTIME=ON \ -DCMAKE_CUDA_ARCHITECTURES=${CUDF_CMAKE_CUDA_ARCHITECTURES} \ @@ -153,6 +155,10 @@ function buildLibCudfJniInDocker { -Dmaven.repo.local=$workspaceMavenRepoDir \ -DskipTests=${SKIP_TESTS:-false} \ -Dparallel.level=${PARALLEL_LEVEL} \ + -Dcmake.ccache.opts='-DCMAKE_C_COMPILER_LAUNCHER=ccache \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache \ + -DCMAKE_LINKER_CXX_LAUNCHER=ccache' \ -DCUDF_CPP_BUILD_DIR=$workspaceRepoDir/java/target/libcudf-cmake-build \ -DCUDA_STATIC_RUNTIME=ON \ -DPER_THREAD_DEFAULT_STREAM=ON \ diff --git a/java/ci/Dockerfile.centos7 b/java/ci/Dockerfile.centos7 index 94f68a79e22..ff8fdb449a2 100644 --- a/java/ci/Dockerfile.centos7 +++ b/java/ci/Dockerfile.centos7 @@ -26,8 +26,9 @@ ARG CUDA_VERSION=11.5.0 FROM gpuci/cuda:$CUDA_VERSION-devel-centos7 ### Install basic requirements +ARG DEVTOOLSET_VERSION=9 RUN yum install -y centos-release-scl -RUN yum install -y devtoolset-9 epel-release +RUN yum install -y devtoolset-${DEVTOOLSET_VERSION} epel-release RUN yum install -y git zlib-devel maven tar wget patch ninja-build ## pre-create the CMAKE_INSTALL_PREFIX folder, set writable by any user for Jenkins @@ -47,6 +48,10 @@ RUN cd /tmp && wget --quiet https://github.com/ccache/ccache/releases/download/v cd ccache-${CCACHE_VERSION} && \ mkdir build && \ cd build && \ - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/opt/rh/devtoolset-9/root/usr/bin/gcc .. && \ - cmake --build . && \ + cmake .. \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_COMPILER=/opt/rh/devtoolset-${DEVTOOLSET_VERSION}/root/usr/bin/gcc \ + -DZSTD_FROM_INTERNET=ON \ + -DREDIS_STORAGE_BACKEND=OFF && \ + cmake --build . --parallel ${PARALLEL_LEVEL} && \ cmake --build . --target install \ No newline at end of file From 77f89bd8dad99d3b623aca49ed8bff26a4987cea Mon Sep 17 00:00:00 2001 From: Gera Shegalov Date: Wed, 4 May 2022 11:04:05 -0700 Subject: [PATCH 11/15] Fix linker launcher config --- build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sh b/build.sh index 62a996b5c7e..c10558aa0b0 100755 --- a/build.sh +++ b/build.sh @@ -137,7 +137,7 @@ function buildLibCudfJniInDocker { -DCMAKE_C_COMPILER_LAUNCHER=ccache \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache \ - -DCMAKE_LINKER_CXX_LAUNCHER=ccache \ + -DCMAKE_CXX_LINKER_LAUNCHER=ccache \ -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ -DCUDA_STATIC_RUNTIME=ON \ -DCMAKE_CUDA_ARCHITECTURES=${CUDF_CMAKE_CUDA_ARCHITECTURES} \ @@ -158,7 +158,7 @@ function buildLibCudfJniInDocker { -Dcmake.ccache.opts='-DCMAKE_C_COMPILER_LAUNCHER=ccache \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DCMAKE_CUDA_COMPILER_LAUNCHER=ccache \ - -DCMAKE_LINKER_CXX_LAUNCHER=ccache' \ + -DCMAKE_CXX_LINKER_LAUNCHER=ccache' \ -DCUDF_CPP_BUILD_DIR=$workspaceRepoDir/java/target/libcudf-cmake-build \ -DCUDA_STATIC_RUNTIME=ON \ -DPER_THREAD_DEFAULT_STREAM=ON \ From e4be84819899e13b792289820553525148cecd46 Mon Sep 17 00:00:00 2001 From: Gera Shegalov Date: Wed, 4 May 2022 11:24:34 -0700 Subject: [PATCH 12/15] add newline at the end of Dockerfile --- build.sh | 1 + java/ci/Dockerfile.centos7 | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/build.sh b/build.sh index c10558aa0b0..ab3bd0e7a89 100755 --- a/build.sh +++ b/build.sh @@ -121,6 +121,7 @@ function buildLibCudfJniInDocker { -t $imageName . nvidia-docker run -it -u $(id -u):$(id -g) --rm \ -e PARALLEL_LEVEL \ + -e CCACHE_DISABLE \ -e CCACHE_DIR="$workspaceCcacheDir" \ -v "/etc/group:/etc/group:ro" \ -v "/etc/passwd:/etc/passwd:ro" \ diff --git a/java/ci/Dockerfile.centos7 b/java/ci/Dockerfile.centos7 index ff8fdb449a2..b3d38bf15d1 100644 --- a/java/ci/Dockerfile.centos7 +++ b/java/ci/Dockerfile.centos7 @@ -54,4 +54,5 @@ RUN cd /tmp && wget --quiet https://github.com/ccache/ccache/releases/download/v -DZSTD_FROM_INTERNET=ON \ -DREDIS_STORAGE_BACKEND=OFF && \ cmake --build . --parallel ${PARALLEL_LEVEL} && \ - cmake --build . --target install \ No newline at end of file + cmake --build . --target install + \ No newline at end of file From 1889f216af442431b5886bb0a9a1283bd0e1e861 Mon Sep 17 00:00:00 2001 From: Gera Shegalov Date: Wed, 4 May 2022 11:25:14 -0700 Subject: [PATCH 13/15] add newline at the end of Dockerfile --- java/ci/Dockerfile.centos7 | 1 - 1 file changed, 1 deletion(-) diff --git a/java/ci/Dockerfile.centos7 b/java/ci/Dockerfile.centos7 index b3d38bf15d1..eaf6c05cae1 100644 --- a/java/ci/Dockerfile.centos7 +++ b/java/ci/Dockerfile.centos7 @@ -55,4 +55,3 @@ RUN cd /tmp && wget --quiet https://github.com/ccache/ccache/releases/download/v -DREDIS_STORAGE_BACKEND=OFF && \ cmake --build . --parallel ${PARALLEL_LEVEL} && \ cmake --build . --target install - \ No newline at end of file From 4ebb66fde590a459540e02b73e33e0c54c2310e0 Mon Sep 17 00:00:00 2001 From: Gera Shegalov Date: Wed, 4 May 2022 14:04:49 -0700 Subject: [PATCH 14/15] review1 --- java/ci/Dockerfile.centos7 | 16 +++++++++------- java/pom.xml | 1 + 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/java/ci/Dockerfile.centos7 b/java/ci/Dockerfile.centos7 index eaf6c05cae1..05bab72485a 100644 --- a/java/ci/Dockerfile.centos7 +++ b/java/ci/Dockerfile.centos7 @@ -48,10 +48,12 @@ RUN cd /tmp && wget --quiet https://github.com/ccache/ccache/releases/download/v cd ccache-${CCACHE_VERSION} && \ mkdir build && \ cd build && \ - cmake .. \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_C_COMPILER=/opt/rh/devtoolset-${DEVTOOLSET_VERSION}/root/usr/bin/gcc \ - -DZSTD_FROM_INTERNET=ON \ - -DREDIS_STORAGE_BACKEND=OFF && \ - cmake --build . --parallel ${PARALLEL_LEVEL} && \ - cmake --build . --target install + scl enable devtoolset-${DEVTOOLSET_VERSION} \ + "cmake .. \ + -DCMAKE_BUILD_TYPE=Release \ + -DZSTD_FROM_INTERNET=ON \ + -DREDIS_STORAGE_BACKEND=OFF && \ + cmake --build . --parallel ${PARALLEL_LEVEL} && \ + cmake --build . --target install" && \ + cd ../.. && \ + rm -rf ccache-${CCACHE_VERSION} diff --git a/java/pom.xml b/java/pom.xml index 0c0f378ebbe..31a79ec9801 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -173,6 +173,7 @@ 0.15.1 4 + From 9b5ccfacaa6de9593308f31d85a2842862d74f0d Mon Sep 17 00:00:00 2001 From: Gera Shegalov Date: Wed, 4 May 2022 16:19:22 -0700 Subject: [PATCH 15/15] Update java/ci/Dockerfile.centos7 Co-authored-by: Jason Lowe --- java/ci/Dockerfile.centos7 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/java/ci/Dockerfile.centos7 b/java/ci/Dockerfile.centos7 index 05bab72485a..7993804554d 100644 --- a/java/ci/Dockerfile.centos7 +++ b/java/ci/Dockerfile.centos7 @@ -53,7 +53,6 @@ RUN cd /tmp && wget --quiet https://github.com/ccache/ccache/releases/download/v -DCMAKE_BUILD_TYPE=Release \ -DZSTD_FROM_INTERNET=ON \ -DREDIS_STORAGE_BACKEND=OFF && \ - cmake --build . --parallel ${PARALLEL_LEVEL} && \ - cmake --build . --target install" && \ + cmake --build . --parallel ${PARALLEL_LEVEL} --target install" && \ cd ../.. && \ rm -rf ccache-${CCACHE_VERSION}