Skip to content

Build and ship shim.cu file as LTOIR#19368

Merged
rapids-bot[bot] merged 2 commits intorapidsai:branch-25.08from
brandon-b-miller:ltoir-shim
Jul 16, 2025
Merged

Build and ship shim.cu file as LTOIR#19368
rapids-bot[bot] merged 2 commits intorapidsai:branch-25.08from
brandon-b-miller:ltoir-shim

Conversation

@brandon-b-miller
Copy link
Contributor

Closes #19362

@brandon-b-miller brandon-b-miller requested review from a team as code owners July 14, 2025 20:28
@brandon-b-miller brandon-b-miller requested review from bdice and wence- July 14, 2025 20:28
@brandon-b-miller brandon-b-miller added feature request New feature or request numba Numba issue Python Affects Python cuDF API. non-breaking Non-breaking change labels Jul 14, 2025
@github-actions github-actions bot added the CMake CMake build issue label Jul 14, 2025
@GPUtester GPUtester moved this to In Progress in cuDF Python Jul 14, 2025
@bdice
Copy link
Contributor

bdice commented Jul 15, 2025

A thought on naming for a future PR: do we want to rename "shim" to something like "fragment"? A shim sounds like it acts between two libraries to normalize API differences. In my understanding we're providing cuDF-friendly building blocks for Numba kernels to use, which feels more like a fragment ... or a library of device functions?

@bdice bdice mentioned this pull request Jul 15, 2025
@bdice
Copy link
Contributor

bdice commented Jul 15, 2025

@brandon-b-miller I'd like to see some kind of performance assessment here before merging but I don't want to block work on #18453. I'm okay with doing that assessment post-merge if you and @vyasr agree to it.

@brandon-b-miller
Copy link
Contributor Author

@bdice that seems reasonable to me. While technically independent, It probably would be more meaningful to benchmark the strings kernels after both this PR and the NRT PR are merged, as the NRT PR's incref's and decrefs might add a lot to the delta between LTOIR on/off. I'm happy to take that on. I'd imagine stuffing a UDF full of a bunch of chained operators might be a good place to start.

@brandon-b-miller
Copy link
Contributor Author

A thought on naming for a future PR: do we want to rename "shim" to something like "fragment"? A shim sounds like it acts between two libraries to normalize API differences. In my understanding we're providing cuDF-friendly building blocks for Numba kernels to use, which feels more like a fragment ... or a library of device functions?

Originally when this file was conceived, it really was just an interop layer between libraries - it mostly forwarded function calls from the numba ABI to methods of cudf::string_view. It's more than that now though and contains groupby functions that aren't really shims, they're full implementations. The files we compile into the final shipped object could stand to be separated out a bit in that sense. But there's at least a little bit of genuine shimming going on WRT the string functions.

@brandon-b-miller
Copy link
Contributor Author

/merge

@rapids-bot rapids-bot bot merged commit 01e9a2f into rapidsai:branch-25.08 Jul 16, 2025
91 checks passed
@github-project-automation github-project-automation bot moved this from In Progress to Done in cuDF Python Jul 16, 2025
@brandon-b-miller brandon-b-miller deleted the ltoir-shim branch July 16, 2025 13:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CMake CMake build issue feature request New feature or request non-breaking Non-breaking change numba Numba issue Python Affects Python cuDF API.

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

[FEA] Ship LTOIR instead of PTX

3 participants