From 4c80f93265598b0414e8e1b00f6e55ad1ebd93c6 Mon Sep 17 00:00:00 2001 From: Alexander Droste Date: Wed, 27 May 2026 11:22:17 +0000 Subject: [PATCH] Bump cuDF pin past string-view fix Pin cuDF to 2a2b126f870bb1d1fdad62ac1c726ccad6001ec6, which includes the Arrow Device string-view fix: https://github.com/rapidsai/cudf/pull/22620 That fix is now upstream, so the local backport patch and patch helper are no longer needed. Signed-off-by: Alexander Droste --- CLAUDE.md | 2 +- CMakeLists.txt | 15 ++----- cmake/apply_patch_once.cmake | 45 ------------------- ...-device-string-view-variadic-buffers.patch | 15 ------- 4 files changed, 5 insertions(+), 72 deletions(-) delete mode 100644 cmake/apply_patch_once.cmake delete mode 100644 patches/cudf-arrow-device-string-view-variadic-buffers.patch diff --git a/CLAUDE.md b/CLAUDE.md index 19dd848..8bf379a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -38,7 +38,7 @@ cmake -S . -B build -G Ninja \ cmake --build build ``` -The CMake configure step fetches and builds cuDF `26.04.00` from source, including the dependencies managed by cuDF's RAPIDS CMake files. This source-build path requires CMake 3.30.4 or newer and CUDA Toolkit 13.0 or newer. The binary builds in debug mode with full debug symbols by default when `CMAKE_BUILD_TYPE` is not set. +The CMake configure step fetches and builds cuDF from a pinned upstream commit containing `rapidsai/cudf#22620`, including the dependencies managed by cuDF's RAPIDS CMake files. This source-build path requires CMake 3.30.4 or newer and CUDA Toolkit 13.0 or newer. The binary builds in debug mode with full debug symbols by default when `CMAKE_BUILD_TYPE` is not set. ## Links diff --git a/CMakeLists.txt b/CMakeLists.txt index 03ef65f..a71cb6b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,10 +17,9 @@ set(CMAKE_CUDA_FLAGS_DEBUG "-g -G -O0") include(FetchContent) find_package(CUDAToolkit REQUIRED) -find_package(Git REQUIRED) if(CUDAToolkit_VERSION VERSION_LESS 13.0) - message(FATAL_ERROR "cuDF 26.04.00 source builds require CUDA Toolkit 13.0 or newer") + message(FATAL_ERROR "cuDF source builds require CUDA Toolkit 13.0 or newer") endif() foreach(option @@ -36,16 +35,10 @@ endforeach() FetchContent_Declare( cudf GIT_REPOSITORY https://github.com/rapidsai/cudf.git - GIT_TAG f9c3cf195768647ac39d98674a614ca414cd1baa + # rapidsai/cudf#22620: fix Arrow Device string-view imports with producer-owned + # ArrowArray.private_data. + GIT_TAG 2a2b126f870bb1d1fdad62ac1c726ccad6001ec6 SOURCE_SUBDIR cpp - # Temporary until cuDF imports external Arrow C Device STRING_VIEW arrays without - # assuming Nanoarrow-owned ArrowArray.private_data. Vortex exports producer-owned - # private_data, which is valid Arrow C data. - PATCH_COMMAND ${CMAKE_COMMAND} - -DGIT_EXECUTABLE=${GIT_EXECUTABLE} - -DSOURCE_DIR= - -DPATCH_FILE=${CMAKE_CURRENT_SOURCE_DIR}/patches/cudf-arrow-device-string-view-variadic-buffers.patch - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/apply_patch_once.cmake ) FetchContent_MakeAvailable(cudf) diff --git a/cmake/apply_patch_once.cmake b/cmake/apply_patch_once.cmake deleted file mode 100644 index 7783540..0000000 --- a/cmake/apply_patch_once.cmake +++ /dev/null @@ -1,45 +0,0 @@ -if(NOT DEFINED GIT_EXECUTABLE) - message(FATAL_ERROR "GIT_EXECUTABLE is required") -endif() -if(NOT DEFINED SOURCE_DIR) - message(FATAL_ERROR "SOURCE_DIR is required") -endif() -if(NOT DEFINED PATCH_FILE) - message(FATAL_ERROR "PATCH_FILE is required") -endif() - -execute_process( - COMMAND "${GIT_EXECUTABLE}" -C "${SOURCE_DIR}" apply --reverse --check "${PATCH_FILE}" - RESULT_VARIABLE PATCH_ALREADY_APPLIED - OUTPUT_QUIET - ERROR_QUIET -) - -if(PATCH_ALREADY_APPLIED EQUAL 0) - message(STATUS "Patch already applied: ${PATCH_FILE}") - return() -endif() - -execute_process( - COMMAND "${GIT_EXECUTABLE}" -C "${SOURCE_DIR}" apply --check "${PATCH_FILE}" - RESULT_VARIABLE PATCH_CAN_APPLY - OUTPUT_VARIABLE PATCH_CHECK_OUTPUT - ERROR_VARIABLE PATCH_CHECK_ERROR -) - -if(NOT PATCH_CAN_APPLY EQUAL 0) - message(FATAL_ERROR "Patch cannot be applied: ${PATCH_FILE}\n${PATCH_CHECK_OUTPUT}\n${PATCH_CHECK_ERROR}") -endif() - -execute_process( - COMMAND "${GIT_EXECUTABLE}" -C "${SOURCE_DIR}" apply --whitespace=nowarn "${PATCH_FILE}" - RESULT_VARIABLE PATCH_APPLY_RESULT - OUTPUT_VARIABLE PATCH_APPLY_OUTPUT - ERROR_VARIABLE PATCH_APPLY_ERROR -) - -if(NOT PATCH_APPLY_RESULT EQUAL 0) - message(FATAL_ERROR "Patch failed: ${PATCH_FILE}\n${PATCH_APPLY_OUTPUT}\n${PATCH_APPLY_ERROR}") -endif() - -message(STATUS "Applied patch: ${PATCH_FILE}") diff --git a/patches/cudf-arrow-device-string-view-variadic-buffers.patch b/patches/cudf-arrow-device-string-view-variadic-buffers.patch deleted file mode 100644 index 3b727cb..0000000 --- a/patches/cudf-arrow-device-string-view-variadic-buffers.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/cpp/src/interop/from_arrow_device.cu b/cpp/src/interop/from_arrow_device.cu -index c2f45af218..1c02352558 100644 ---- a/cpp/src/interop/from_arrow_device.cu -+++ b/cpp/src/interop/from_arrow_device.cu -@@ -176,9 +176,7 @@ dispatch_tuple_t dispatch_from_arrow_device::operator()( - auto const d_items = view.buffer_views[binary_view_vector_idx].data.as_binary_view; - auto variadic_ptrs = std::vector(); - for (auto i = 0L; i < view.n_variadic_buffers; ++i) { -- auto variadic_buf = -- ArrowArrayBuffer(const_cast(input), i + NANOARROW_BINARY_VIEW_FIXED_BUFFERS); -- variadic_ptrs.push_back(reinterpret_cast(variadic_buf->data)); -+ variadic_ptrs.push_back(reinterpret_cast(view.variadic_buffers[i])); - } - auto d_variadic_ptrs = cudf::detail::make_device_uvector_async( - variadic_ptrs, stream, cudf::get_current_device_resource_ref());