Skip to content

Commit d24f770

Browse files
1 parent 112830f commit d24f770

10 files changed

Lines changed: 12 additions & 40 deletions

File tree

.agents/skills/build-test-cudf-java/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ export MAVEN_OPTS="--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.
5151
Export `MVN_COMMON_OPTS` to match the CI build configuration in `java/ci/build-in-docker.sh`. For example:
5252

5353
```bash
54-
export MVN_COMMON_OPTS="-DCUDF_CPP_BUILD_DIR=$CUDF_CPP_BUILD_DIR -DBUILD_SHARED_LIBS=OFF -DCUDF_USE_PER_THREAD_DEFAULT_STREAM=ON -DCUDA_STATIC_CUFILE=ON -DCUDA_STATIC_RUNTIME=ON -DCUDF_JNI_LIBCUDF_STATIC=ON"
54+
export MVN_COMMON_OPTS="-DCUDF_CPP_BUILD_DIR=$CUDF_CPP_BUILD_DIR -DBUILD_SHARED_LIBS=OFF -DCUDF_USE_PER_THREAD_DEFAULT_STREAM=ON -DCUDA_STATIC_CUFILE=ON -DCUDF_JNI_LIBCUDF_STATIC=ON"
5555
```
5656

5757
## Building cudf-java

conda/recipes/cudf/recipe.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,6 @@ requirements:
9898
- pylibcudf =${{ version }}
9999
- ${{ pin_compatible("rmm", upper_bound="x.x") }}
100100
- fsspec >=0.6.0
101-
- cuda-cudart
102101
- if: cuda_major == "12"
103102
then: cuda-python >=12.9.2,<13.0
104103
else: cuda-python >=13.0.1,<14.0

cpp/CMakeLists.txt

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,6 @@ option(CUDA_ENABLE_LINEINFO
5858
)
5959
option(CUDA_WARNINGS_AS_ERRORS "Enable -Werror=all-warnings for all CUDA compilation" ON)
6060

61-
# cudart can be statically linked or dynamically linked. The python ecosystem wants dynamic linking
62-
option(CUDA_STATIC_RUNTIME "Statically link the CUDA runtime" OFF)
63-
6461
set(DEFAULT_CUDF_BUILD_STREAMS_TEST_UTIL ON)
6562

6663
if(NOT BUILD_SHARED_LIBS)
@@ -97,7 +94,6 @@ message(
9794
VERBOSE
9895
"CUDF: Enable the -lineinfo option for nvcc (useful for cuda-memcheck / profiler): ${CUDA_ENABLE_LINEINFO}"
9996
)
100-
message(VERBOSE "CUDF: Statically link the CUDA runtime: ${CUDA_STATIC_RUNTIME}")
10197
message(VERBOSE
10298
"CUDF: Build with remote IO (e.g. AWS S3) support through KvikIO: ${CUDF_KVIKIO_REMOTE_IO}"
10399
)
@@ -1012,7 +1008,7 @@ if(TARGET conda_env)
10121008
target_link_libraries(cudf PRIVATE conda_env)
10131009
endif()
10141010

1015-
rapids_cuda_set_runtime(cudf USE_STATIC ${CUDA_STATIC_RUNTIME})
1011+
rapids_cuda_set_runtime(cudf USE_STATIC ON)
10161012

10171013
file(
10181014
WRITE "${CUDF_BINARY_DIR}/fatbin.ld"
@@ -1059,7 +1055,7 @@ if(CUDF_BUILD_TESTUTIL)
10591055
PUBLIC cudf
10601056
PRIVATE $<TARGET_NAME_IF_EXISTS:conda_env>
10611057
)
1062-
rapids_cuda_set_runtime(cudftest_default_stream USE_STATIC ${CUDA_STATIC_RUNTIME})
1058+
rapids_cuda_set_runtime(cudftest_default_stream USE_STATIC ON)
10631059

10641060
add_library(cudf::cudftest_default_stream ALIAS cudftest_default_stream)
10651061

@@ -1090,7 +1086,7 @@ if(CUDF_BUILD_TESTUTIL)
10901086
cudftestutil INTERFACE "$<BUILD_INTERFACE:${CUDF_SOURCE_DIR}>"
10911087
"$<BUILD_INTERFACE:${CUDF_SOURCE_DIR}/src>"
10921088
)
1093-
rapids_cuda_set_runtime(cudftestutil USE_STATIC ${CUDA_STATIC_RUNTIME})
1089+
rapids_cuda_set_runtime(cudftestutil USE_STATIC ON)
10941090
add_library(cudf::cudftestutil ALIAS cudftestutil)
10951091

10961092
add_library(cudftestutil_impl INTERFACE)
@@ -1151,7 +1147,7 @@ if(CUDF_BUILD_STREAMS_TEST_UTIL)
11511147
endif()
11521148

11531149
set(sanitizer_relative_genex
1154-
"$<PATH:RELATIVE_PATH,$<TARGET_FILE_DIR:CUDA::sanitizer>,$<TARGET_FILE_DIR:CUDA::cudart>>"
1150+
"$<PATH:RELATIVE_PATH,$<TARGET_FILE_DIR:CUDA::sanitizer>,$<TARGET_FILE_DIR:CUDA::cudart_static>>"
11551151
)
11561152
set_target_properties(
11571153
${_tgt}
@@ -1166,9 +1162,9 @@ if(CUDF_BUILD_STREAMS_TEST_UTIL)
11661162
${_tgt} PRIVATE "$<BUILD_INTERFACE:$<$<COMPILE_LANGUAGE:CXX>:${CUDF_CXX_FLAGS}>>"
11671163
)
11681164
target_include_directories(${_tgt} PRIVATE "$<BUILD_INTERFACE:${CUDF_SOURCE_DIR}/include>")
1169-
target_link_libraries(${_tgt} PUBLIC CUDA::cudart rmm::rmm CUDA::sanitizer)
1165+
target_link_libraries(${_tgt} PUBLIC CUDA::cudart_static rmm::rmm CUDA::sanitizer)
11701166

1171-
rapids_cuda_set_runtime(${_tgt} USE_STATIC ${CUDA_STATIC_RUNTIME})
1167+
rapids_cuda_set_runtime(${_tgt} USE_STATIC ON)
11721168
add_library(cudf::${_tgt} ALIAS ${_tgt})
11731169

11741170
if("${_mode}" STREQUAL "testing")

cpp/cmake/Modules/JitifyPreprocessKernels.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
add_executable(jitify_preprocess "${JITIFY_INCLUDE_DIR}/jitify2_preprocess.cpp")
1010

1111
target_compile_definitions(jitify_preprocess PRIVATE "_FILE_OFFSET_BITS=64")
12-
rapids_cuda_set_runtime(jitify_preprocess USE_STATIC ${CUDA_STATIC_RUNTIME})
12+
rapids_cuda_set_runtime(jitify_preprocess USE_STATIC ON)
1313
target_link_libraries(jitify_preprocess PUBLIC ${CMAKE_DL_LIBS})
1414

1515
# Take a list of files to JIT-compile and run them through jitify_preprocess.

cpp/tests/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ function(ConfigureTest CMAKE_TEST_NAME)
6161
${CMAKE_TEST_NAME} PRIVATE cudf::cudftestutil_objects nvtx3::nvtx3-cpp
6262
$<TARGET_NAME_IF_EXISTS:conda_env> "${_CUDF_TEST_EXTRA_LIBS}"
6363
)
64-
rapids_cuda_set_runtime(${CMAKE_TEST_NAME} USE_STATIC ${CUDA_STATIC_RUNTIME})
64+
rapids_cuda_set_runtime(${CMAKE_TEST_NAME} USE_STATIC ON)
6565
rapids_test_add(
6666
NAME ${CMAKE_TEST_NAME}
6767
COMMAND ${CMAKE_TEST_NAME}

java/README.md

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -79,13 +79,6 @@ If you decide to build without Docker and the build script, examining the cmake
7979
settings in the [Java CI build script](ci/build-in-docker.sh) can be helpful if you are
8080
encountering difficulties during the build.
8181

82-
## Statically Linking the CUDA Runtime
83-
84-
If you use the default cmake options libcudart will be dynamically linked to libcudf and libcudfjni.
85-
To build with a static CUDA runtime, build libcudf with the `-DCUDA_STATIC_RUNTIME=ON` as a cmake
86-
parameter, and similarly build with `-DCUDA_STATIC_RUNTIME=ON` when building the Java bindings
87-
with Maven.
88-
8982
### Building with a libcudf Archive
9083

9184
When statically linking the CUDA runtime, it is recommended to build cuDF as an archive rather than

java/ci/build-in-docker.sh

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/bash
22

33
#
4-
# SPDX-FileCopyrightText: Copyright (c) 2020-2025, NVIDIA CORPORATION. All rights reserved.
4+
# SPDX-FileCopyrightText: Copyright (c) 2020-2026, NVIDIA CORPORATION. All rights reserved.
55
# SPDX-License-Identifier: Apache-2.0
66
#
77

@@ -10,7 +10,6 @@ gcc --version
1010

1111
SKIP_JAVA_TESTS=${SKIP_JAVA_TESTS:-true}
1212
BUILD_CPP_TESTS=${BUILD_CPP_TESTS:-OFF}
13-
ENABLE_CUDA_STATIC_RUNTIME=${ENABLE_CUDA_STATIC_RUNTIME:-ON}
1413
ENABLE_PTDS=${ENABLE_PTDS:-ON}
1514
RMM_LOGGING_LEVEL=${RMM_LOGGING_LEVEL:-OFF}
1615
ENABLE_NVTX=${ENABLE_NVTX:-ON}
@@ -27,7 +26,6 @@ OUT_PATH="$WORKSPACE/$OUT"
2726
echo "SIGN_FILE: $SIGN_FILE,\
2827
SKIP_JAVA_TESTS: $SKIP_JAVA_TESTS,\
2928
BUILD_CPP_TESTS: $BUILD_CPP_TESTS,\
30-
ENABLE_CUDA_STATIC_RUNTIME: $ENABLE_CUDA_STATIC_RUNTIME,\
3129
ENABLED_PTDS: $ENABLE_PTDS,\
3230
ENABLE_NVTX: $ENABLE_NVTX,\
3331
ENABLE_GDS: $ENABLE_GDS,\
@@ -47,7 +45,6 @@ mkdir -p "$LIBCUDF_BUILD_PATH"
4745
cd "$LIBCUDF_BUILD_PATH"
4846
cmake .. -G"${CMAKE_GENERATOR}" \
4947
-DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX \
50-
-DCUDA_STATIC_RUNTIME="$ENABLE_CUDA_STATIC_RUNTIME" \
5148
-DUSE_NVTX="$ENABLE_NVTX" \
5249
-DCUDF_LARGE_STRINGS_DISABLED=ON \
5350
-DCUDF_USE_ARROW_STATIC=ON \
@@ -70,7 +67,6 @@ BUILD_ARG=(
7067
"-Dmaven.repo.local=$WORKSPACE/.m2"
7168
"-DskipTests=$SKIP_JAVA_TESTS"
7269
"-DCUDF_USE_PER_THREAD_DEFAULT_STREAM=$ENABLE_PTDS"
73-
"-DCUDA_STATIC_RUNTIME=$ENABLE_CUDA_STATIC_RUNTIME"
7470
"-DCUDF_JNI_LIBCUDF_STATIC=ON"
7571
"-DUSE_GDS=$ENABLE_GDS"
7672
"-Dtest=*,!CuFileTest,!CudaFatalTest,!ColumnViewNonEmptyNullsTest"

java/pom.xml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,6 @@
153153
<skipNativeCopy>false</skipNativeCopy>
154154
<cxx.flags/>
155155
<CMAKE_EXPORT_COMPILE_COMMANDS>OFF</CMAKE_EXPORT_COMPILE_COMMANDS>
156-
<CUDA_STATIC_RUNTIME>OFF</CUDA_STATIC_RUNTIME>
157156
<CUDF_USE_PER_THREAD_DEFAULT_STREAM>OFF</CUDF_USE_PER_THREAD_DEFAULT_STREAM>
158157
<USE_GDS>OFF</USE_GDS>
159158
<CMAKE_CUDA_ARCHITECTURES>RAPIDS</CMAKE_CUDA_ARCHITECTURES>
@@ -484,7 +483,6 @@
484483
<env key="CUDF_CPP_BUILD_DIR" value="${CUDF_CPP_BUILD_DIR}"/>
485484
<arg value="${basedir}/src/main/native"/>
486485
<arg line="${cmake.ccache.opts}"/>
487-
<arg value="-DCUDA_STATIC_RUNTIME=${CUDA_STATIC_RUNTIME}" />
488486
<arg value="-DCUDF_USE_PER_THREAD_DEFAULT_STREAM=${CUDF_USE_PER_THREAD_DEFAULT_STREAM}" />
489487
<arg value="-DUSE_GDS=${USE_GDS}" />
490488
<arg value="-DCMAKE_CXX_FLAGS=${cxx.flags}"/>

java/src/main/native/CMakeLists.txt

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ option(USE_NVTX "Build with NVTX support" ON)
2929
option(BUILD_SHARED_LIBS "Build cuDF JNI shared libraries" ON)
3030
option(BUILD_TESTS "Configure CMake to build tests" ON)
3131
option(CUDF_USE_PER_THREAD_DEFAULT_STREAM "Build with per-thread default stream" OFF)
32-
option(CUDA_STATIC_RUNTIME "Statically link the CUDA runtime" OFF)
3332
option(USE_GDS "Build with GPUDirect Storage (GDS)/cuFile support" OFF)
3433
option(CUDF_JNI_LIBCUDF_STATIC "Link with libcudf.a" OFF)
3534
option(CUDF_JNI_ENABLE_PROFILING "Build with profiling support" ON)
@@ -41,7 +40,6 @@ message(VERBOSE "CUDF_JNI: Configure CMake to build tests: ${BUILD_TESTS}")
4140
message(VERBOSE
4241
"CUDF_JNI: Build with per-thread default stream: ${CUDF_USE_PER_THREAD_DEFAULT_STREAM}"
4342
)
44-
message(VERBOSE "CUDF_JNI: Statically link the CUDA runtime: ${CUDA_STATIC_RUNTIME}")
4543
message(VERBOSE "CUDF_JNI: Build with GPUDirect Storage support: ${USE_GDS}")
4644
message(VERBOSE "CUDF_JNI: Link with libcudf statically: ${CUDF_JNI_LIBCUDF_STATIC}")
4745

@@ -279,13 +277,7 @@ target_link_libraries(
279277
# cudart can be statically linked or dynamically linked. The python ecosystem wants dynamic
280278
# linking
281279

282-
if(CUDA_STATIC_RUNTIME)
283-
# Tell CMake what CUDA language runtime to use
284-
set_target_properties(cudfjni PROPERTIES CUDA_RUNTIME_LIBRARY Static)
285-
else()
286-
# Tell CMake what CUDA language runtime to use
287-
set_target_properties(cudfjni PROPERTIES CUDA_RUNTIME_LIBRARY Shared)
288-
endif()
280+
set_target_properties(cudfjni PROPERTIES CUDA_RUNTIME_LIBRARY Static)
289281

290282
# ##################################################################################################
291283
# * install shared libraries ----------------------------------------------------------------------

python/libcudf/CMakeLists.txt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# =============================================================================
22
# cmake-format: off
3-
# SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION.
3+
# SPDX-FileCopyrightText: Copyright (c) 2024-2026, NVIDIA CORPORATION.
44
# SPDX-License-Identifier: Apache-2.0
55
# cmake-format: on
66
# =============================================================================
@@ -63,8 +63,6 @@ if(NOT USE_NVCOMP_RUNTIME_WHEEL)
6363
endif()
6464
endif()
6565

66-
set(CUDA_STATIC_RUNTIME ON)
67-
6866
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
6967

7068
add_subdirectory(../../cpp cudf-cpp)

0 commit comments

Comments
 (0)