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]