This is an automated email from the ASF dual-hosted git repository.

yuanzhou pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-gluten.git


The following commit(s) were added to refs/heads/main by this push:
     new 643bf78e04 [GLUTEN-10903][VL] Install cudf libraries in docker to 
simplify link and accelerate build (#11386)
643bf78e04 is described below

commit 643bf78e04c432a03d05809f1deeb86695de1f7b
Author: Jin Chengcheng <[email protected]>
AuthorDate: Tue Jan 20 21:19:25 2026 +0800

    [GLUTEN-10903][VL] Install cudf libraries in docker to simplify link and 
accelerate build (#11386)
    
    This patch improved the GPU build with:
    
    - Build velox source code
    - cmake install cudf-build, so install relevant libraries such as kvikio
    - gluten link cudf::cudf
    - LD_LIBRARY_PATH to link correct curl version in veox _deps
---
 .github/workflows/velox_backend_x86.yml |  1 +
 cpp/velox/CMakeLists.txt                | 29 ++++++++---------------------
 cpp/velox/benchmarks/CMakeLists.txt     |  3 +++
 cpp/velox/tests/CMakeLists.txt          | 26 +++++---------------------
 dev/docker/cudf/Dockerfile              |  2 +-
 ep/build-velox/src/build-velox.sh       |  6 ++++++
 6 files changed, 24 insertions(+), 43 deletions(-)

diff --git a/.github/workflows/velox_backend_x86.yml 
b/.github/workflows/velox_backend_x86.yml
index 12bc7acabe..066c5ed565 100644
--- a/.github/workflows/velox_backend_x86.yml
+++ b/.github/workflows/velox_backend_x86.yml
@@ -1381,6 +1381,7 @@ jobs:
           export CMAKE_BUILD_PARALLEL_LEVEL=4
           export NUM_THREADS=4
           export CCACHE_DIR=/work/.ccache
+          export 
LD_LIBRARY_PATH=/work/ep/build-velox/build/velox_ep/_build/release/_deps/curl-build/lib:$LD_LIBRARY_PATH
           mkdir -p /work/.ccache
 
           cd /work
diff --git a/cpp/velox/CMakeLists.txt b/cpp/velox/CMakeLists.txt
index 9547cde0e2..806b65f881 100644
--- a/cpp/velox/CMakeLists.txt
+++ b/cpp/velox/CMakeLists.txt
@@ -417,6 +417,8 @@ if(BUILD_EXAMPLES)
 endif()
 
 if(ENABLE_GPU)
+  find_package(cudf CONFIG REQUIRED)
+
   import_library(
     facebook::velox::velox_cudf_expression
     
${VELOX_BUILD_PATH}/velox/experimental/cudf/expression/libvelox_cudf_expression.a
@@ -431,35 +433,20 @@ if(ENABLE_GPU)
     facebook::velox::velox_cudf_hive_connector
     
${VELOX_BUILD_PATH}/velox/experimental/cudf/connectors/hive/libvelox_cudf_hive_connector.a
   )
-  target_include_directories(
-    velox
-    PRIVATE ${VELOX_BUILD_PATH}/_deps/cudf-src/cpp/include
-            ${VELOX_BUILD_PATH}/_deps/rmm-src/cpp/include
-            ${VELOX_BUILD_PATH}/_deps/kvikio-src/cpp/include
-            ${VELOX_BUILD_PATH}/_deps/nvtx3-src/c/include
-            ${VELOX_BUILD_PATH}/_deps/nvcomp_proprietary_binary-src/include
-            ${VELOX_BUILD_PATH}/_deps/rapids_logger-src/include
-            /usr/local/cuda/include/cccl
-            /usr/local/cuda/include)
 
   target_compile_definitions(
     velox PRIVATE LIBCUDACXX_ENABLE_EXPERIMENTAL_MEMORY_RESOURCE)
 
+  add_library(velox_curl SHARED IMPORTED GLOBAL)
+  set_target_properties(
+    velox_curl PROPERTIES IMPORTED_LOCATION
+                          ${VELOX_BUILD_PATH}/_deps/curl-build/lib/libcurl.so)
+
   target_link_libraries(
     velox
     PUBLIC facebook::velox::velox_cudf_exec facebook::velox::velox_cudf_vector
            facebook::velox::velox_cudf_hive_connector
-           facebook::velox::velox_cudf_expression)
-  target_link_libraries(
-    velox
-    PRIVATE
-      ${VELOX_BUILD_PATH}/_deps/cudf-build/libcudf.so
-      ${VELOX_BUILD_PATH}/_deps/rmm-build/librmm.so
-      ${VELOX_BUILD_PATH}/_deps/kvikio-build/libkvikio.so
-      
${VELOX_BUILD_PATH}/_deps/nvcomp_proprietary_binary-src/lib64/libnvcomp.so
-      
${VELOX_BUILD_PATH}/_deps/nvcomp_proprietary_binary-src/lib64/libnvcomp_cpu.so
-      ${VELOX_BUILD_PATH}/_deps/rapids_logger-build/librapids_logger.so
-      /usr/local/cuda/lib64/libcudart.so)
+           facebook::velox::velox_cudf_expression cudf::cudf velox_curl)
 endif()
 
 add_custom_command(
diff --git a/cpp/velox/benchmarks/CMakeLists.txt 
b/cpp/velox/benchmarks/CMakeLists.txt
index 9a95ba97ac..e56627466c 100644
--- a/cpp/velox/benchmarks/CMakeLists.txt
+++ b/cpp/velox/benchmarks/CMakeLists.txt
@@ -24,6 +24,9 @@ target_link_libraries(velox_benchmark_common PUBLIC velox 
benchmark::benchmark
 function(add_velox_benchmark BM_EXEC BM_FILE)
   add_executable(${BM_EXEC} ${BM_FILE})
   target_link_libraries(${BM_EXEC} PRIVATE velox_benchmark_common)
+  if(ENABLE_GPU)
+    target_link_libraries(${BM_EXEC} PRIVATE velox_curl)
+  endif()
 endfunction()
 
 # Generic benchmark
diff --git a/cpp/velox/tests/CMakeLists.txt b/cpp/velox/tests/CMakeLists.txt
index 5fd4f1f830..a690347bc4 100644
--- a/cpp/velox/tests/CMakeLists.txt
+++ b/cpp/velox/tests/CMakeLists.txt
@@ -29,6 +29,9 @@ function(add_velox_test TEST_EXEC)
   target_include_directories(${TEST_EXEC} PRIVATE ${CMAKE_SOURCE_DIR}/velox
                                                   ${CMAKE_SOURCE_DIR}/src)
   target_link_libraries(${TEST_EXEC} velox GTest::gtest GTest::gtest_main)
+  if(ENABLE_GPU)
+    target_link_libraries(${TEST_EXEC} velox_curl)
+  endif()
   gtest_discover_tests(${TEST_EXEC} DISCOVERY_MODE PRE_TEST)
 endfunction()
 
@@ -71,35 +74,16 @@ if(ENABLE_GPU)
       facebook::velox::velox_cudf_hive_connector
       
${VELOX_BUILD_PATH}/velox/experimental/cudf/connectors/hive/libvelox_cudf_hive_connector.a
     )
-    target_include_directories(
-      ${TEST_EXEC}
-      PRIVATE ${VELOX_BUILD_PATH}/_deps/cudf-src/cpp/include
-              ${VELOX_BUILD_PATH}/_deps/rmm-src/cpp/include
-              ${VELOX_BUILD_PATH}/_deps/kvikio-src/cpp/include
-              ${VELOX_BUILD_PATH}/_deps/nvtx3-src/c/include
-              ${VELOX_BUILD_PATH}/_deps/nvcomp_proprietary_binary-src/include
-              ${VELOX_BUILD_PATH}/_deps/rapids_logger-src/include
-              /usr/local/cuda/include)
     target_compile_definitions(
       ${TEST_EXEC} PUBLIC LIBCUDACXX_ENABLE_EXPERIMENTAL_MEMORY_RESOURCE)
-    target_link_libraries(
-      ${TEST_EXEC}
-      PRIVATE
-        ${VELOX_BUILD_PATH}/_deps/cudf-build/libcudf.so
-        ${VELOX_BUILD_PATH}/_deps/rmm-build/librmm.so
-        ${VELOX_BUILD_PATH}/_deps/kvikio-build/libkvikio.so
-        
${VELOX_BUILD_PATH}/_deps/nvcomp_proprietary_binary-src/lib64/libnvcomp.so
-        
${VELOX_BUILD_PATH}/_deps/nvcomp_proprietary_binary-src/lib64/libnvcomp_cpu.so
-        ${VELOX_BUILD_PATH}/_deps/rapids_logger-build/librapids_logger.so
-        /usr/local/cuda-12.8/lib64/libcudart.so.12)
     target_link_libraries(
       ${TEST_EXEC}
       PUBLIC facebook::velox::velox_cudf_expression
              facebook::velox::velox_cudf_exec
              facebook::velox::velox_cudf_vector
              facebook::velox::velox_cudf_hive_connector)
-    target_link_libraries(${TEST_EXEC} PRIVATE velox GTest::gtest
-                                               GTest::gtest_main)
+    target_link_libraries(${TEST_EXEC} PRIVATE velox cudf::cudf velox_curl
+                                               GTest::gtest GTest::gtest_main)
     gtest_discover_tests(
       ${TEST_EXEC} DISCOVERY_MODE PRE_TEST
       PROPERTIES LABELS "cuda_driver"
diff --git a/dev/docker/cudf/Dockerfile b/dev/docker/cudf/Dockerfile
index c900c632ea..f81f8b7d9a 100644
--- a/dev/docker/cudf/Dockerfile
+++ b/dev/docker/cudf/Dockerfile
@@ -25,7 +25,7 @@ RUN cd /opt/gluten/.github/workflows/util/ && 
./install-spark-resources.sh 3.4
 ENV SPARK_HOME=/opt/spark-3.4.4-bin-hadoop3
 ENV PATH=$SPARK_HOME/bin:$PATH
 ENV CUDA_ARCHITECTURES=70
-
+ENV 
LD_LIBRARY_PATH=/opt/gluten/ep/build-velox/build/velox_ep/_build/release/_deps/curl-build/lib:$LD_LIBRARY_PATH
 
 WORKDIR /opt/gluten
 RUN rm -rf /opt/rh/gcc-toolset-12 && ln -s /opt/rh/gcc-toolset-14 
/opt/rh/gcc-toolset-12; \
diff --git a/ep/build-velox/src/build-velox.sh 
b/ep/build-velox/src/build-velox.sh
index ac62f8fc27..b4b31fa9e1 100755
--- a/ep/build-velox/src/build-velox.sh
+++ b/ep/build-velox/src/build-velox.sh
@@ -173,6 +173,12 @@ function compile {
         sudo cmake --install xsimd-build/
       fi
     fi
+    if [ -d cudf-build ]; then
+      echo "INSTALL cudf."
+      if [ $OS == 'Linux' ]; then
+        sudo cmake --install cudf-build/
+      fi
+    fi
     if [ -d googletest-build ]; then
       echo "INSTALL gtest."
       if [ $OS == 'Linux' ]; then


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to