Skip to content

Fix native UDF toolchain alignment for cuDF main#624

Merged
nvliyuan merged 1 commit intoNVIDIA:mainfrom
nvliyuan:fix-udf-cudf-abi-mismatch-623
Apr 29, 2026
Merged

Fix native UDF toolchain alignment for cuDF main#624
nvliyuan merged 1 commit intoNVIDIA:mainfrom
nvliyuan:fix-udf-cudf-abi-mismatch-623

Conversation

@nvliyuan
Copy link
Copy Markdown
Collaborator

@nvliyuan nvliyuan commented Apr 27, 2026

Fixes #623.

Summary

The native UDF build should stay on cuDF main. The failure was caused by toolchain/dependency mismatch with the libcudf.so used at runtime.

This PR:

  • updates RAPIDS CMake from release/26.02 to main
  • changes the native UDF Docker default from gcc-toolset-14 to gcc-toolset-13

@nvliyuan nvliyuan requested a review from GaryShen2008 April 27, 2026 08:06
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Apr 27, 2026

Greptile Summary

This PR fixes a toolchain/ABI mismatch when building the native UDF against cuDF main by switching the RAPIDS CMake branch from release/26.02 to main and downgrading the Docker default toolset from gcc-toolset-14 to gcc-toolset-13. Both changes are minimal and consistent with the stated goal of keeping the build aligned with the cuDF main runtime library.

Confidence Score: 5/5

Safe to merge — changes are minimal, targeted, and consistent with the stated fix.

Both changes are straightforward: a compiler toolset version bump in the Dockerfile and a branch name update in CMakeLists.txt. No logic, API contracts, or data paths are affected. The dual use of rapids-cmake-branch as both the cmake helper branch and cuDF GIT_TAG was pre-existing behavior, not introduced by this PR. No P0 or P1 findings.

No files require special attention.

Important Files Changed

Filename Overview
examples/UDF-Examples/RAPIDS-accelerated-UDFs/Dockerfile Downgrades default gcc-toolset from 14 to 13 and updates copyright year; straightforward toolchain alignment change.
examples/UDF-Examples/RAPIDS-accelerated-UDFs/src/main/cpp/CMakeLists.txt Switches rapids-cmake-branch from release/26.02 to main; the same variable is reused as the cuDF GIT_TAG in the source-build path, so both now float on main — intentional but creates a reproducibility caveat.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Docker Build\ngcc-toolset-13] --> B[CMake Configure]
    B --> C{USE_PREBUILT_CUDF?}
    C -- ON --> D[Download RAPIDS.cmake\nfrom rapidsai/rapids-cmake @ main]
    C -- OFF --> D
    D --> E[rapids_cpm_init]
    C -- ON --> F[Use prebuilt libcudf.so\nfrom rapids-4-spark jar]
    F --> G[Fetch CCCL + RMM\nvia rapids-cmake @ main]
    C -- OFF --> H[Clone cudf @ main\nvia rapids_cpm_find]
    G --> I[Build udfexamplesjni.so]
    H --> I
Loading

Reviews (5): Last reviewed commit: "Fix native UDF toolchain for cuDF main" | Re-trigger Greptile

Comment thread examples/UDF-Examples/RAPIDS-accelerated-UDFs/extract-cudf-libs.sh Outdated
@nvliyuan nvliyuan marked this pull request as draft April 28, 2026 03:39
@GaryShen2008
Copy link
Copy Markdown
Collaborator

Please update the PR description to explain what it changed. The current description is not correct because we're using the main branch and there's no release/26.06 branch. The #623 is not because of the wrong branch.

@nvliyuan nvliyuan force-pushed the fix-udf-cudf-abi-mismatch-623 branch from f14db0a to 98f7c02 Compare April 28, 2026 08:12
@nvliyuan nvliyuan changed the title Fix native UDF cuDF version mismatch Fix native UDF toolchain alignment for cuDF main Apr 28, 2026
@nvliyuan nvliyuan marked this pull request as ready for review April 28, 2026 09:00
Use the same RAPIDS CMake branch as cuDF main and build native UDFs with GCC 13 to avoid the CCCL/libcudacxx ABI mismatch seen when loading the UDF JNI library.

Signed-off-by: liyuan <yuali@nvidia.com>
Made-with: Cursor
@nvliyuan nvliyuan force-pushed the fix-udf-cudf-abi-mismatch-623 branch from 98f7c02 to 088c603 Compare April 28, 2026 09:01
Copy link
Copy Markdown
Collaborator

@GaryShen2008 GaryShen2008 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please confirm with DevOps if the Dockerfile will be rebuilt automatically in the CI.

@nvliyuan
Copy link
Copy Markdown
Collaborator Author

Please confirm with DevOps if the Dockerfile will be rebuilt automatically in the CI.

yes. CC @NvTimLiu , merged

@nvliyuan nvliyuan merged commit 338be10 into NVIDIA:main Apr 29, 2026
4 checks passed
@NvTimLiu
Copy link
Copy Markdown
Collaborator

Please confirm with DevOps if the Dockerfile will be rebuilt automatically in the CI.

Yes CI will build the UDF Docker image nightly

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] RAPIDS-accelerated-UDFs native test fails with undefined symbol cudf::copy_bitmask (resource_ref ABI mismatch)

5 participants