Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
368 commits
Select commit Hold shift + click to select a range
96d254c
update
lamarrr Mar 22, 2026
a0ee09d
Remove Jitify references and clean up CMake configuration
lamarrr Mar 22, 2026
11e01b3
Add TODO for glob restrictions in embed.cmake to filter source files
lamarrr Mar 22, 2026
6bc9c0b
Update comments to clarify NVRTC and jit-compiling references in stri…
lamarrr Mar 22, 2026
9be6531
Merge branch 'main' into multi-output-transform-support
lamarrr Mar 25, 2026
40d46cf
Merge branch 'main' into multi-output-transform-support
lamarrr Mar 27, 2026
df6bd8d
Merge branch 'main' into multi-output-transform-support
lamarrr Mar 30, 2026
060d369
refactor null mask handling to use set_null_mask for consistency
lamarrr Mar 30, 2026
4ba506a
properly handle cuda version for "-minimal" flag
lamarrr Mar 30, 2026
c21c228
Merge branch 'multi-output-transform-support' of https://github.com/l…
lamarrr Mar 30, 2026
476025e
Merge branch 'main' into multi-output-transform-support
lamarrr Mar 30, 2026
7e8c903
Merge remote-tracking branch 'upstream/main' into multi-output-transf…
lamarrr Apr 1, 2026
3aa3b20
fix invocation error
lamarrr Apr 1, 2026
e1a6f43
Use global namespace for standard library functions in rtcx.cpp
lamarrr Apr 1, 2026
b382e49
reorg
lamarrr Apr 1, 2026
a8f8c3d
Remove unused kernel enumeration functions from library_t
lamarrr Apr 1, 2026
3f92780
Remove get_name method and its declaration from kernel_ref
lamarrr Apr 1, 2026
49d81e6
remove unused kernel header from helpers.hpp
lamarrr Apr 1, 2026
70c558c
Update PTX code in ColumnVectorTest with generated output from Numba
lamarrr Apr 1, 2026
c0b947b
Merge branch 'main' into multi-output-transform-support
lamarrr Apr 1, 2026
742b88a
FIX JAVA string literal quote
lamarrr Apr 1, 2026
d27a094
Merge branch 'multi-output-transform-support' of https://github.com/l…
lamarrr Apr 1, 2026
6b4fe05
Merge remote-tracking branch 'upstream/main' into multi-output-transf…
lamarrr Apr 1, 2026
cc503e2
Update cpp/src/transform/transform.cu
lamarrr Apr 1, 2026
24c450a
Update cpp/src/transform/transform.cu
lamarrr Apr 1, 2026
29cfcc7
Refactor inplace_null_mask_and to move bitmask calculations after inp…
lamarrr Apr 1, 2026
22b189b
reduce binary size + fix java string
lamarrr Apr 2, 2026
c9e651c
Merge branch 'main' into multi-output-transform-support
lamarrr Apr 2, 2026
4932483
Merge branch 'main' into multi-output-transform-support
lamarrr Apr 4, 2026
eb1b4f2
Merge remote-tracking branch 'upstream/main' into drop-jitify
lamarrr Apr 4, 2026
c43ac2f
Merge branch 'main' into multi-output-transform-support
lamarrr Apr 5, 2026
c261b83
update
lamarrr Apr 5, 2026
3bc9868
Merge remote-tracking branch 'upstream/main' into drop-jitify
lamarrr Apr 5, 2026
25a35f0
Remove lz4 and zstandard dependencies from environment and project files
lamarrr Apr 5, 2026
cedd9bd
Add zstandard dependency to pyproject.toml
lamarrr Apr 5, 2026
45e48f5
Update TODO comment to clarify glob restrictions for included source …
lamarrr Apr 5, 2026
6a1267f
remove libraryunload handling
lamarrr Apr 6, 2026
8f50bb3
fix identation
lamarrr Apr 6, 2026
6cf08ca
Merge branch 'multi-output-transform-support' of https://github.com/l…
lamarrr Apr 6, 2026
f2282ac
Fix symbol loading error handling and improve lru_memory_cache initia…
lamarrr Apr 6, 2026
7bfd0a8
Merge branch 'main' into multi-output-transform-support
lamarrr Apr 9, 2026
ed68841
Merge branch 'main' into multi-output-transform-support
lamarrr Apr 9, 2026
dd64fd9
Merge branch 'main' into multi-output-transform-support
lamarrr Apr 9, 2026
b6db8f2
Merge branch 'main' into multi-output-transform-support
lamarrr Apr 10, 2026
485107e
code review changes
lamarrr Apr 11, 2026
85e96db
Merge branch 'main' into multi-output-transform-support
lamarrr Apr 11, 2026
f6209b1
feature improvements + added workaround for missing cuda driver func…
lamarrr Apr 11, 2026
bbe8d5c
Refactor JIT include directories and fix delimiter typo in embed.in.cpp
lamarrr Apr 11, 2026
c46450e
Refactor JIT kernel paths and include directives for improved organiz…
lamarrr Apr 11, 2026
8c30430
Merge remote-tracking branch 'origin/multi-output-transform-support' …
lamarrr Apr 11, 2026
f8fcc70
Merge remote-tracking branch 'upstream/main' into drop-jitify
lamarrr Apr 11, 2026
4ba9950
Enhance JIT kernel functions with additional parameters for minimal u…
lamarrr Apr 11, 2026
74286e0
Fix formatting in compression output message for clarity
lamarrr Apr 11, 2026
25901ea
Refactor function parameter formatting for improved readability in JI…
lamarrr Apr 11, 2026
2b5dbc5
fix up
lamarrr Apr 12, 2026
a521f47
Refactor detail namespace usage in transform.cu for consistency
lamarrr Apr 12, 2026
3b70eb3
Merge branch 'multi-output-transform-support' of https://github.com/l…
lamarrr Apr 12, 2026
843dbd5
Enhance argument handling in to_args function by utilizing pinned vec…
lamarrr Apr 12, 2026
d44bbbb
Fix type in to_args function to use column_device_view_base for impro…
lamarrr Apr 12, 2026
5101289
Merge branch 'main' into multi-output-transform-support
lamarrr Apr 12, 2026
58a6385
Refactor to_args function to use host_vector for better memory manage…
lamarrr Apr 12, 2026
49f94ed
Merge branch 'multi-output-transform-support' of https://github.com/l…
lamarrr Apr 12, 2026
70f62f1
Merge remote-tracking branch 'origin/multi-output-transform-support' …
lamarrr Apr 12, 2026
7616d54
Refactor rolling window wrappers to include constructors and improve …
lamarrr Apr 12, 2026
bdbed4b
Add embedded file generation and SHA256 hashing functionality
lamarrr Apr 12, 2026
689495f
Remove redundant SetFlowCallback from log_trace function
lamarrr Apr 12, 2026
ea2ef02
Enhance const correctness by adding [[nodiscard]] to relevant methods…
lamarrr Apr 12, 2026
18372f7
Merge branch 'main' into drop-jitify
lamarrr Apr 12, 2026
0112b98
Refactor transform_kernel template parameters for clarity and consist…
lamarrr Apr 12, 2026
9cc8747
Merge branch 'main' into multi-output-transform-support
lamarrr Apr 12, 2026
222618d
Add CUDF_KERNEL qualifier to kernel functions in binaryop, join, and …
lamarrr Apr 12, 2026
1c0def6
Merge remote-tracking branch 'origin/multi-output-transform-support' …
lamarrr Apr 12, 2026
b37b545
simplify column_accessor traits
lamarrr Apr 13, 2026
ed81710
Merge branch 'multi-output-transform-support' of https://github.com/l…
lamarrr Apr 13, 2026
95925f9
Merge remote-tracking branch 'origin/multi-output-transform-support' …
lamarrr Apr 13, 2026
225e597
Refactor CUDA utility includes and improve string offset validation l…
lamarrr Apr 14, 2026
8085323
Update copyright year to 2026 in cuda.cuh
lamarrr Apr 14, 2026
f0646bc
Merge branch 'main' into multi-output-transform-support
lamarrr Apr 14, 2026
6af15c0
remove nullable trait in column accessor
lamarrr Apr 14, 2026
ea82e0d
Merge branch 'multi-output-transform-support' of https://github.com/l…
lamarrr Apr 14, 2026
4c7e43d
Merge remote-tracking branch 'origin/multi-output-transform-support' …
lamarrr Apr 14, 2026
3c5adc7
refactor: simplify variable declarations in reflect function
lamarrr Apr 14, 2026
d42466d
remove zstandard dependency from recipe and pyproject files
lamarrr Apr 14, 2026
1e5cb73
initial changes
lamarrr Apr 18, 2026
0ec6804
Refactor JIT compilation and embedding process
lamarrr Apr 20, 2026
0dbb87b
Merge branch 'main' into drop-jitify
lamarrr Apr 20, 2026
28295bb
Merge remote-tracking branch 'upstream/main' into drop-jitify
lamarrr Apr 20, 2026
aa3f3c3
clean up diff
lamarrr Apr 20, 2026
6682abd
Remove unused kernel argument configuration in launch function
lamarrr Apr 20, 2026
d9f4185
update embed script
lamarrr Apr 20, 2026
0055ca0
Merge branch 'main' into drop-jitify
lamarrr Apr 20, 2026
8a9878c
update docs
lamarrr Apr 20, 2026
c59d13f
Merge branch 'drop-jitify' of https://github.com/lamarrr/cudf into dr…
lamarrr Apr 20, 2026
43f9cd0
disable excessive linter warnings
lamarrr Apr 20, 2026
b7c9f3c
fix lints
lamarrr Apr 20, 2026
d0e86fd
refactor: change class declarations to struct for cache_t and jit_bun…
lamarrr Apr 21, 2026
067123e
refactor: improve formatting and modernize array declarations in get_…
lamarrr Apr 21, 2026
57d1192
removed static linking to CUDA libs and fixed lint errors
lamarrr Apr 21, 2026
36d06ae
Merge branch 'main' into drop-jitify
lamarrr Apr 21, 2026
fae6e2c
removed invalid linter warnings
lamarrr Apr 21, 2026
2301055
Merge branch 'drop-jitify' of https://github.com/lamarrr/cudf into dr…
lamarrr Apr 21, 2026
bfa6782
Merge branch 'main' into drop-jitify
lamarrr Apr 21, 2026
32eb792
Merge branch 'main' into drop-jitify
lamarrr Apr 21, 2026
9ae5096
refactoring + code review suggestions
lamarrr Apr 22, 2026
95591ba
Merge remote-tracking branch 'upstream/main' into drop-jitify
lamarrr Apr 22, 2026
610beab
refactoring
lamarrr Apr 22, 2026
457ee40
Remove unnecessary blank lines and clean up SPDX license headers in m…
lamarrr Apr 22, 2026
855b246
Refactor embed functions to remove unused binary file name variable a…
lamarrr Apr 22, 2026
2c98a35
Refactor CMakeLists.txt and source files to remove unused variables a…
lamarrr Apr 23, 2026
37d6696
Rename environment variable for clearing JIT cache to improve clarity
lamarrr Apr 23, 2026
49636cc
Refactoring + removed disk LRU
lamarrr Apr 23, 2026
169618d
Apply suggestion from @wence-
lamarrr Apr 23, 2026
b5cd518
Refactor object type handling in disk cache functions for improved cl…
lamarrr Apr 24, 2026
3c607ca
Merge branch 'drop-jitify' of https://github.com/lamarrr/cudf into dr…
lamarrr Apr 24, 2026
1c025b4
Merge branch 'main' into drop-jitify
lamarrr Apr 24, 2026
8c3ac2f
update
lamarrr Apr 24, 2026
4a17020
Merge branch 'main' into drop-jitify
lamarrr Apr 24, 2026
2c497dc
Merge branch 'main' into drop-jitify
lamarrr Apr 24, 2026
72a17bc
Merge branch 'main' into drop-jitify
lamarrr Apr 25, 2026
29826d4
fix(context): update environment variable names for JIT cache configu…
lamarrr Apr 26, 2026
f3f72b2
Merge branch 'main' into drop-jitify
lamarrr Apr 28, 2026
9ed9325
Merge branch 'main' into drop-jitify
lamarrr May 4, 2026
8c7f368
Refactor JIT operators and add compute columns functionality
lamarrr May 5, 2026
6fe3108
code review changes
lamarrr May 5, 2026
2e647ef
Merge branch 'drop-jitify' of https://github.com/lamarrr/cudf into dr…
lamarrr May 5, 2026
e9ec212
Refactor decompress_blob function signature to use std::uint8_t and s…
lamarrr May 5, 2026
6f5a542
Merge remote-tracking branch 'upstream/main' into drop-jitify
lamarrr May 5, 2026
01b42c2
Merge remote-tracking branch 'origin/drop-jitify' into lto-ir-jit
lamarrr May 5, 2026
5188eca
Remove inline specifier from load and store functions in compute_colu…
lamarrr May 5, 2026
0b0ba2f
Implement LTO (Link Time Optimization) for transform operations
lamarrr May 12, 2026
0ea5656
Implement LTO (Link Time Optimization) for transform operations and u…
lamarrr May 12, 2026
6b2e0e7
Remove untyped LTO kernel implementations and related code
lamarrr May 13, 2026
dc95bba
Update CMakeLists.txt to enhance library linking and update copyright…
lamarrr May 13, 2026
40fd3eb
Add documentation for JIT embedding functions in CMake files
lamarrr May 13, 2026
12b8cf7
Merge remote-tracking branch 'upstream/main' into lto-ir-jit
lamarrr May 13, 2026
6e3840e
update
lamarrr May 13, 2026
630beab
revert non-librtcx changes
lamarrr May 13, 2026
3f5fc79
revert LTO doc
lamarrr May 13, 2026
8aad236
revert docker change
lamarrr May 13, 2026
eb3ef79
fix coderabbit nits
lamarrr May 13, 2026
1bbc0f8
Merge branch 'main' into drop-jitify
lamarrr May 13, 2026
03ec682
revert: code rabbit suggestion
lamarrr May 14, 2026
00b32b3
Update documentation and improve function signatures in librtcx
lamarrr May 15, 2026
8bde405
Refactor embed_includes function to use SOURCE_DIRECTORY instead of C…
lamarrr May 15, 2026
463d008
Add template specialization for reflect function to handle various types
lamarrr May 15, 2026
2a26428
WAR: pre-commit namespace decl
lamarrr May 15, 2026
df6c97d
Fix formatting in generate_cxx_source_files_data function for improve…
lamarrr May 15, 2026
2662703
Merge branch 'main' into drop-jitify
lamarrr May 15, 2026
ac0caaa
replace error-prone parent scope variable assignment with target prop…
lamarrr May 18, 2026
908cf50
pre-commit: formatting
lamarrr May 18, 2026
48d1ec0
fix: correct variable name for embed properties in JIT functions
lamarrr May 18, 2026
cbfc086
fix: update std::call_once to use value() for initialization flags
lamarrr May 20, 2026
56ac249
fix: change namespace declaration to inline for detail
lamarrr May 20, 2026
a138cb7
fix: update reflect_enum to use reflect instead of reflect_int
lamarrr May 20, 2026
a0ec040
Merge branch 'main' into drop-jitify
bdice May 21, 2026
59593ed
Merge branch 'main' into drop-jitify
lamarrr May 22, 2026
f554c66
code refactoring
lamarrr May 22, 2026
1f87560
Merge branch 'main' into lto-ir-2--jit-refactoring
lamarrr May 22, 2026
9194410
initial jitify replacement diff
lamarrr May 22, 2026
01f40f7
update copyright year to 2026 in rolling window files
lamarrr May 22, 2026
1909376
Merge branch 'lto-ir-2--jit-refactoring' of https://github.com/lamarr…
lamarrr May 22, 2026
67ee5f6
Update LIBCUDF_KERNEL_CACHE_PATH in Dockerfile to use libcudf_kernel_…
lamarrr May 22, 2026
2b8aab7
Merge branch 'lto-ir-2--jit-refactoring' into lto-ir-3-rtcx-adoption
lamarrr May 22, 2026
ef0fc46
Implement JIT kernel embedding and update related includes for improv…
lamarrr May 22, 2026
560901e
Fix include guard placement in assert.cuh
lamarrr May 22, 2026
b3786f7
Merge branch 'lto-ir-2--jit-refactoring' into lto-ir-3-rtcx-adoption
lamarrr May 22, 2026
ea73d7d
update
lamarrr May 23, 2026
3d69873
Merge branch 'lto-ir-2--jit-refactoring' into lto-ir-3-rtcx-adoption
lamarrr May 23, 2026
e44478c
Refactor embedded file header comment and delete unused reflect function
lamarrr May 23, 2026
69b434f
Merge branch 'main' into lto-ir-2--jit-refactoring
lamarrr May 24, 2026
9ae0741
Merge branch 'lto-ir-2--jit-refactoring' into lto-ir-3-rtcx-adoption
lamarrr May 24, 2026
f6f2192
Merge branch 'main' into lto-ir-2--jit-refactoring
lamarrr May 26, 2026
ffea1b6
update
lamarrr May 26, 2026
522866b
update
lamarrr May 26, 2026
42eb516
Merge branch 'lto-ir-2--jit-refactoring' of https://github.com/lamarr…
lamarrr May 26, 2026
f103bf6
Merge branch 'lto-ir-2--jit-refactoring' into lto-ir-3--rtcx-adoption
lamarrr May 26, 2026
86ead05
Merge remote-tracking branch 'upstream/main' into lto-ir-3--rtcx-adop…
lamarrr May 26, 2026
812b6b7
update
lamarrr May 26, 2026
d94aa7a
Merge branch 'main' into lto-ir-3--rtcx-adoption
lamarrr May 26, 2026
cd162a1
Refactor includes and format source file assignment in JIT cache
lamarrr May 26, 2026
08065f6
Merge branch 'lto-ir-3--rtcx-adoption' of https://github.com/lamarrr/…
lamarrr May 26, 2026
ac00b4a
Refactor kernel entry parameters in filter_join_kernel and remove TOD…
lamarrr May 26, 2026
d190ac0
Add LTO (Link Time Optimization) support for transform operations
lamarrr May 27, 2026
b462e22
fix compile error + refactoring
lamarrr May 27, 2026
b2f406b
Merge branch 'lto-ir-3--rtcx-adoption' into lto-ir-4--lto-kernels
lamarrr May 27, 2026
e7c314f
Refactor binary operator functions to use a unified transform operato…
lamarrr May 31, 2026
89581c0
Merge remote-tracking branch 'upstream/main' into lto-ir-4--lto-kernels
lamarrr Jun 10, 2026
4440bd0
Refactor JIT Transform Operations and Introduce Bankers Rounding
lamarrr Jun 11, 2026
183be8f
Remove LTO optimization flag from CUDA compile options in CMakeLists …
lamarrr Jun 11, 2026
111f023
Refactor transform functions to return int instead of void and update…
lamarrr Jun 11, 2026
c6760a0
Add static assertions for type consistency and update fragment IDs in…
lamarrr Jun 11, 2026
104e8e9
Refactor LTO checks and move whitespace stripping logic to a lambda f…
lamarrr Jun 11, 2026
804c617
Merge branch 'main' into lto-ir-4--lto-kernels
lamarrr Jun 11, 2026
7bb29e2
Update transform functions to use float types and enhance output hand…
lamarrr Jun 11, 2026
63626cd
Merge branch 'lto-ir-4--lto-kernels' of https://github.com/lamarrr/cu…
lamarrr Jun 11, 2026
5f2147e
refactoring + cleanup
lamarrr Jun 11, 2026
b1696d0
Merge branch 'main' into lto-ir-4--lto-kernels
lamarrr Jun 13, 2026
1e80fd1
Merge branch 'main' into lto-ir-4--lto-kernels
lamarrr Jun 13, 2026
6d026f5
Merge branch 'main' into lto-ir-4--lto-kernels
lamarrr Jun 15, 2026
4fe25e6
Add JIT support for binary operations and new 'to_lower' transform fu…
lamarrr Jun 15, 2026
c2db821
Merge branch 'lto-ir-4--lto-kernels' of https://github.com/lamarrr/cu…
lamarrr Jun 15, 2026
3d48975
Rename 'ToLower' test to 'ToUpper' and update associated fragment ref…
lamarrr Jun 15, 2026
99f6296
Merge branch 'main' into lto-ir-4--lto-kernels
lamarrr Jun 15, 2026
8816036
use kernel id as cache, and require file/memory fragment names to be …
lamarrr Jun 16, 2026
48749b2
Merge remote-tracking branch 'upstream/main' into lto-ir-4--lto-kernels
lamarrr Jun 16, 2026
376f836
use kernel id as cache, and require file/memory fragment names to be …
lamarrr Jun 16, 2026
ea2dabd
Merge branch 'main' into lto-ir-4--lto-kernels
lamarrr Jun 16, 2026
16052fc
Add optional UDF identifier for caching in LTO transform functions
lamarrr Jun 16, 2026
8f91b78
Merge branch 'lto-ir-4--lto-kernels' of https://github.com/lamarrr/cu…
lamarrr Jun 16, 2026
16b9509
Rename udf_hash to udf_id for clarity in binary operator transformations
lamarrr Jun 16, 2026
69690ee
Refactor hash handling: Replace sha256 with hash128
lamarrr Jun 17, 2026
c479bad
Fix index calculation in hash128 operator[] for correct byte access
lamarrr Jun 17, 2026
454a036
Add state creation checks for XXH3 in hash computation functions
lamarrr Jun 17, 2026
c181dbe
Merge remote-tracking branch 'origin/fast-jit-kernel-hash' into lto-i…
lamarrr Jun 17, 2026
b8bf0f2
Add null terminator update in hash function for XXH3
lamarrr Jun 17, 2026
3c93d2b
Merge remote-tracking branch 'origin/fast-jit-kernel-hash' into lto-i…
lamarrr Jun 17, 2026
99f5d91
remove heap allocation in xxhash state
lamarrr Jun 17, 2026
78ab9ec
Merge remote-tracking branch 'origin/fast-jit-kernel-hash' into lto-i…
lamarrr Jun 17, 2026
9f5e887
Refactor hash state initialization in get_kernel function
lamarrr Jun 17, 2026
510ecdc
Add xxHash integration and update dependencies in CMake configuration
lamarrr Jun 18, 2026
1dafe39
Refactor hash functions to include null terminators for file and memo…
lamarrr Jun 18, 2026
10ef9f0
Merge remote-tracking branch 'origin/fast-jit-kernel-hash' into lto-i…
lamarrr Jun 18, 2026
f5120e1
Remove unnecessary blank lines in hash initialization for kernel and …
lamarrr Jun 18, 2026
a5d330f
Update copyright statements in CMake files to include "AFFILIATES" fo…
lamarrr Jun 18, 2026
7a2e1de
Merge remote-tracking branch 'origin/fast-jit-kernel-hash' into lto-i…
lamarrr Jun 18, 2026
1bef8cb
Remove udf_id parameter from transform functions and tests
lamarrr Jun 18, 2026
8208ecb
Add benchmark for float multiplication in binary operations
lamarrr Jun 18, 2026
c9e0a1f
Update copyright statements to include "AFFILIATES" for consistency a…
lamarrr Jun 22, 2026
7cc1bc5
Refactor hash128_hasher to simplify operator() implementation
lamarrr Jun 22, 2026
dbbe384
Format code and improve readability in binary operation benchmarks
lamarrr Jun 22, 2026
679af74
Merge branch 'main' into lto-ir-4--lto-kernels
lamarrr Jun 22, 2026
7cbc141
Merge branch 'main' into lto-ir-4--lto-kernels
lamarrr Jun 22, 2026
95e64a0
Merge remote-tracking branch 'upstream/main' into lto-ir-4--lto-kernels
lamarrr Jun 23, 2026
700b83d
fix(transform_kernel): remove redundant stencil check and clean up la…
lamarrr Jun 23, 2026
06d1194
fix(CMakeLists): update target_link_libraries to use BUILD_LOCAL_INTE…
lamarrr Jun 23, 2026
f3b9908
fix(CMakeLists): format target_link_libraries for better readability
lamarrr Jun 24, 2026
d1e2c73
Merge branch 'main' into lto-ir-4--lto-kernels
lamarrr Jun 24, 2026
896bdcf
Merge branch 'main' into lto-ir-4--lto-kernels
lamarrr Jun 24, 2026
b78bdad
Merge branch 'main' into lto-ir-4--lto-kernels
KyleFromNVIDIA Jun 26, 2026
e19544b
fixed cuda version check for compile options
lamarrr Jun 29, 2026
943cde3
Update cpp/cmake/thirdparty/get_xxhash.cmake
lamarrr Jun 29, 2026
e375139
Update cpp/librtcx/README.md
lamarrr Jun 29, 2026
78fe49f
Update cpp/librtcx/embed.cmake
lamarrr Jun 29, 2026
9ce7ecf
code review changes
lamarrr Jun 29, 2026
b658c04
Merge branch 'lto-ir-4--lto-kernels' of https://github.com/lamarrr/cu…
lamarrr Jun 29, 2026
de90c10
comment update
lamarrr Jun 30, 2026
693c3bb
update
lamarrr Jun 30, 2026
641732d
only use lower 64 bits of hash128 for memory hash table
lamarrr Jun 30, 2026
00fe96c
add fragment management helper functions to CMake
lamarrr Jul 1, 2026
bcd5c5c
refactor: move device version retrieval to context class and update c…
lamarrr Jul 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
144 changes: 131 additions & 13 deletions cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -413,6 +413,9 @@ include(cmake/thirdparty/get_nanoarrow.cmake)
# find thread_pool
include(cmake/thirdparty/get_thread_pool.cmake)

# find xxhash
include(cmake/thirdparty/get_xxhash.cmake)

# find zstd
include(cmake/thirdparty/get_zstd.cmake)

Expand All @@ -422,6 +425,9 @@ add_subdirectory(librtcx)
# JIT Embedding helper functions
include(librtcx/embed.cmake)

# Pre-compiled fragment management helper functions
include(cmake/Modules/AddFragment.cmake)

# Workaround until https://github.com/rapidsai/rapids-cmake/issues/176 is resolved
if(NOT BUILD_SHARED_LIBS)
include("${rapids-cmake-dir}/export/find_package_file.cmake")
Expand All @@ -444,39 +450,39 @@ if(NOT BUILD_SHARED_LIBS)
)
endif()

add_embed(cudf_cuda_embed)
rtcx_add_embed(cudf_cuda_embed)

embed_includes(
rtcx_embed_includes(
cudf_cuda_embed SOURCE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/librtcx/libcxx DEST_DIRECTORY
librtcx/libcxx INCLUDE_DIRECTORIES librtcx/libcxx
)

embed_includes(
rtcx_embed_includes(
cudf_cuda_embed SOURCE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/cudf DEST_DIRECTORY
cudf/cpp/include/cudf INCLUDE_DIRECTORIES cudf/cpp/include
)

embed_includes(
rtcx_embed_includes(
cudf_cuda_embed SOURCE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/src/jit DEST_DIRECTORY
cudf/cpp/src/jit INCLUDE_DIRECTORIES cudf/cpp/src
)

embed_includes(
rtcx_embed_includes(
cudf_cuda_embed SOURCE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/src/binaryop/jit DEST_DIRECTORY
cudf/cpp/src/binaryop/jit INCLUDE_DIRECTORIES cudf/cpp/src
)

embed_includes(
rtcx_embed_includes(
cudf_cuda_embed SOURCE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/src/join/jit DEST_DIRECTORY
cudf/cpp/src/join/jit INCLUDE_DIRECTORIES cudf/cpp/src
)

embed_includes(
rtcx_embed_includes(
cudf_cuda_embed SOURCE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/src/rolling DEST_DIRECTORY
cudf/cpp/src/rolling INCLUDE_DIRECTORIES cudf/cpp/src
)

embed_includes(
rtcx_embed_includes(
cudf_cuda_embed SOURCE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/src/transform/jit DEST_DIRECTORY
cudf/cpp/src/transform/jit INCLUDE_DIRECTORIES cudf/cpp/src
)
Expand All @@ -486,13 +492,115 @@ get_target_property(LIBCUDACXX_RAW_INCLUDE_DIRS CCCL::libcudacxx INTERFACE_INCLU
foreach(INC_DIR IN LISTS LIBCUDACXX_RAW_INCLUDE_DIRS)
cmake_path(GET INC_DIR FILENAME INC_DIR_NAME)

embed_includes(
rtcx_embed_includes(
cudf_cuda_embed SOURCE_DIRECTORY ${INC_DIR} DEST_DIRECTORY CCCL/libcudacxx/${INC_DIR_NAME}
INCLUDE_DIRECTORIES CCCL/libcudacxx/${INC_DIR_NAME}
)
endforeach()

embed(cudf_cuda_embed COMPRESSION zstd OUTPUT_DIRECTORY "${CUDF_GENERATED_INCLUDE_DIR}/rtcx_embed")
rtcx_embed(
cudf_cuda_embed COMPRESSION zstd OUTPUT_DIRECTORY "${CUDF_GENERATED_INCLUDE_DIR}/rtcx_embed"
)

rtcx_add_embed(cudf_fragments)

list(
APPEND
CUDF_PRECOMPILE_TYPES
uint8_t
uint16_t
uint32_t
uint64_t
int8_t
int16_t
int32_t
int64_t
float
double
numeric::decimal32
numeric::decimal64
numeric::decimal128
cudf::timestamp_D
cudf::timestamp_s
cudf::timestamp_ms
cudf::timestamp_us
cudf::timestamp_ns
cudf::duration_D
cudf::duration_s
cudf::duration_ms
cudf::duration_us
cudf::duration_ns
)

foreach(TYPE IN ITEMS ${CUDF_PRECOMPILE_TYPES})
set(FRAGMENT_NAME transform_kernel)
get_property(
FILE_INDEX
TARGET cudf_fragments__embed_props
PROPERTY EMBED_FILE_INDEX
)
set(VARIANT_NAME transform_kernel_${FILE_INDEX})
set(INSTANCE
"cudf::jit::transform_kernel<false, false, cudf::jit::type_list<cudf::jit::column_accessor<0ULL, cudf::column_device_view_core, ${TYPE}, false, 0>>, cudf::jit::type_list<cudf::jit::column_accessor<0ULL, cudf::mutable_column_device_view_core, ${TYPE}, false, 0>>>"
)
add_fragment(
cudf_fragments
FRAGMENT
${VARIANT_NAME}
SOURCE
src/transform/jit/kernel.cu
KERNEL_INSTANCE
${INSTANCE}
UDF_TYPE
"int(${TYPE} *, ${TYPE})"
DEFINITIONS
CUDF_LTO_MODE
ARRAY_IDS
${FRAGMENT_NAME}_FILE_INDEX
${FRAGMENT_NAME}_INSTANCE
ARRAY_VALUES
${FILE_INDEX}
"${INSTANCE}"
)
endforeach()

foreach(TYPE IN ITEMS ${CUDF_PRECOMPILE_TYPES})
foreach(RHS_IS_SCALAR IN ITEMS "false" "true")
set(FRAGMENT_NAME transform_kernel)
get_property(
FILE_INDEX
TARGET cudf_fragments__embed_props
PROPERTY EMBED_FILE_INDEX
)
set(VARIANT_NAME transform_kernel_${FILE_INDEX})
set(INSTANCE
"cudf::jit::transform_kernel<false, false, cudf::jit::type_list<cudf::jit::column_accessor<0ULL, cudf::column_device_view_core, ${TYPE}, false, 0>, cudf::jit::column_accessor<1ULL, cudf::column_device_view_core, ${TYPE}, ${RHS_IS_SCALAR}, 0>>, cudf::jit::type_list<cudf::jit::column_accessor<0ULL, cudf::mutable_column_device_view_core, ${TYPE}, false, 0>>>"
)
add_fragment(
cudf_fragments
FRAGMENT
${VARIANT_NAME}
SOURCE
src/transform/jit/kernel.cu
KERNEL_INSTANCE
${INSTANCE}
UDF_TYPE
"int(${TYPE} *, ${TYPE}, ${TYPE})"
DEFINITIONS
CUDF_LTO_MODE
ARRAY_IDS
${FRAGMENT_NAME}_FILE_INDEX
${FRAGMENT_NAME}_INSTANCE
ARRAY_VALUES
${FILE_INDEX}
"${INSTANCE}"
)
endforeach()
endforeach()

rtcx_embed(
cudf_fragments COMPRESSION none OUTPUT_DIRECTORY "${CUDF_GENERATED_INCLUDE_DIR}/rtcx_embed"
)

# ##################################################################################################
# * library targets -------------------------------------------------------------------------------
Expand Down Expand Up @@ -1056,9 +1164,10 @@ add_library(
src/utilities/type_checks.cpp
src/utilities/type_dispatcher.cpp
${cudf_cuda_embed_SOURCE_DIR}/cudf_cuda_embed.s
${cudf_fragments_SOURCE_DIR}/cudf_fragments.s
)

add_dependencies(cudf cudf_cuda_embed)
add_dependencies(cudf cudf_cuda_embed cudf_fragments)

set_property(
SOURCE src/io/parquet/writer_impl.cu
Expand Down Expand Up @@ -1128,7 +1237,9 @@ target_include_directories(
"$<BUILD_INTERFACE:${nanoarrow_SOURCE_DIR}/src>"
"$<BUILD_INTERFACE:${FlatBuffers_SOURCE_DIR}/include>"
"$<BUILD_INTERFACE:${ZSTD_INCLUDE_DIR}>"
"$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/librtcx>"
"$<BUILD_INTERFACE:${cudf_cuda_embed_INCLUDE_DIRS}>"
"$<BUILD_INTERFACE:${cudf_fragments_INCLUDE_DIRS}>"
INTERFACE "$<INSTALL_INTERFACE:include>"
)

Expand Down Expand Up @@ -1170,8 +1281,15 @@ target_compile_definitions(cudf PRIVATE THRUST_FORCE_32_BIT_OFFSET_TYPE=1 CCCL_A
target_link_libraries(
cudf
PUBLIC CCCL::CCCL $<BUILD_LOCAL_INTERFACE:BS::thread_pool>
PRIVATE $<BUILD_LOCAL_INTERFACE:nvtx3::nvtx3-cpp> $<BUILD_LOCAL_INTERFACE:cuco::cuco> ZLIB::ZLIB
${CUDF_nvcomp_TARGET} kvikio::kvikio ${CUDF_nanoarrow_TARGET} zstd rtcx::rtcx
PRIVATE $<BUILD_LOCAL_INTERFACE:nvtx3::nvtx3-cpp>
$<BUILD_LOCAL_INTERFACE:cuco::cuco>
ZLIB::ZLIB
${CUDF_nvcomp_TARGET}
kvikio::kvikio
${CUDF_nanoarrow_TARGET}
zstd
$<BUILD_LOCAL_INTERFACE:xxhash>
rtcx::rtcx
)

# When rmm is a static library being absorbed via whole-archive, strip nvtx3 from its public
Expand Down
15 changes: 14 additions & 1 deletion cpp/benchmarks/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# =============================================================================
# cmake-format: off
# SPDX-FileCopyrightText: Copyright (c) 2018-2026, NVIDIA CORPORATION.
# SPDX-FileCopyrightText: Copyright (c) 2018-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
# cmake-format: on
# =============================================================================
Expand Down Expand Up @@ -386,11 +386,24 @@ ConfigureNVBench(CSV_WRITER_NVBENCH io/csv/csv_writer.cpp)
# * ast benchmark ---------------------------------------------------------------------------------
ConfigureNVBench(AST_NVBENCH ast/polynomials.cpp ast/transform.cpp)

# ##################################################################################################
# * LTO Fragments ----------------------------------------------------------------------------
rtcx_add_embed(cudf_benchmark_fragments)
add_fragment(cudf_benchmark_fragments FRAGMENT add_f32 SOURCE binaryop/fragments/add_f32.cu)
add_fragment(cudf_benchmark_fragments FRAGMENT mul_f32 SOURCE binaryop/fragments/mul_f32.cu)
rtcx_embed(
cudf_benchmark_fragments COMPRESSION none OUTPUT_DIRECTORY
"${CUDF_GENERATED_INCLUDE_DIR}/rtcx_embed"
)

# ##################################################################################################
# * binaryop benchmark ----------------------------------------------------------------------------
ConfigureNVBench(
BINARYOP_NVBENCH binaryop/binaryop.cpp binaryop/compiled_binaryop.cpp binaryop/polynomials.cpp
${cudf_benchmark_fragments_SOURCE_DIR}/cudf_benchmark_fragments.s
)
target_include_directories(BINARYOP_NVBENCH PRIVATE ${cudf_benchmark_fragments_SOURCE_DIR})
add_dependencies(BINARYOP_NVBENCH cudf_benchmark_fragments)

# ##################################################################################################
# * transform benchmark
Expand Down
117 changes: 116 additions & 1 deletion cpp/benchmarks/binaryop/compiled_binaryop.cpp
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
/*
* SPDX-FileCopyrightText: Copyright (c) 2021-2026, NVIDIA CORPORATION.
* SPDX-FileCopyrightText: Copyright (c) 2021-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
* SPDX-License-Identifier: Apache-2.0
*/

#include <benchmarks/common/generate_input.hpp>
#include <benchmarks/common/memory_stats.hpp>

#include <cudf/binaryop.hpp>
#include <cudf/transform.hpp>

#include <cudf_benchmark_fragments.hpp>
#include <nvbench/nvbench.cuh>

template <typename TypeLhs, typename TypeRhs, typename TypeOut>
Expand Down Expand Up @@ -72,6 +74,7 @@ BINARYOP_BENCHMARK_DEFINE(timestamp_s, duration_s, ADD, time
BINARYOP_BENCHMARK_DEFINE(duration_s, duration_D, SUB, duration_ms);
BINARYOP_BENCHMARK_DEFINE(int64_t, int64_t, SUB, int64_t);
BINARYOP_BENCHMARK_DEFINE(float, float, MUL, int64_t);
BINARYOP_BENCHMARK_DEFINE(float, float, MUL, float);
BINARYOP_BENCHMARK_DEFINE(duration_s, int64_t, MUL, duration_s);
BINARYOP_BENCHMARK_DEFINE(int64_t, int64_t, DIV, int64_t);
BINARYOP_BENCHMARK_DEFINE(duration_ms, int32_t, DIV, duration_ms);
Expand Down Expand Up @@ -101,3 +104,115 @@ BINARYOP_BENCHMARK_DEFINE(duration_ms, duration_ns, NULL_EQUALS, bool
BINARYOP_BENCHMARK_DEFINE(duration_ms, duration_ns, NULL_NOT_EQUALS, bool);
BINARYOP_BENCHMARK_DEFINE(decimal32, decimal32, NULL_MAX, decimal32);
BINARYOP_BENCHMARK_DEFINE(timestamp_D, timestamp_s, NULL_MIN, timestamp_s);
// clang-format on

template <typename TypeLhs, typename TypeRhs, typename TypeOut>
void BM_jit_binaryop(nvbench::state& state, cudf::binary_operator binop)
{
constexpr auto const jit_mul_cuda = R"***(
__device__ void transform(float* out, float a, float b) {
*out = a * b;
}
)***";

constexpr auto const jit_add_cuda = R"***(
__device__ void transform(float* out, float a, float b) {
*out = a + b;
}
)***";

auto const num_rows = static_cast<cudf::size_type>(state.get_int64("num_rows"));
auto const use_lto = state.get_string("use_lto") == "true";
static_assert(std::is_same_v<TypeLhs, TypeRhs> && std::is_same_v<TypeRhs, TypeOut>);
static_assert(std::is_same_v<TypeLhs, float>);

auto const source_table = create_random_table(
{cudf::type_to_id<TypeLhs>(), cudf::type_to_id<TypeRhs>()}, row_count{num_rows});

auto lhs = cudf::column_view(source_table->get_column(0));
auto rhs = cudf::column_view(source_table->get_column(1));

size_t fragment_id = 0;
char const* cuda = nullptr;

switch (binop) {
case cudf::binary_operator::ADD: {
fragment_id = cudf_benchmark_fragments::add_f32;
cuda = jit_add_cuda;
} break;
case cudf::binary_operator::MUL: {
fragment_id = cudf_benchmark_fragments::mul_f32;
cuda = jit_mul_cuda;
} break;
default: throw std::runtime_error("Unsupported binary operator for JIT benchmark");
}

// Call once for hot cache.
cudf::transform_input inputs[] = {lhs, rhs};
cudf::transform_output outputs[] = {
{cudf::data_type{cudf::type_to_id<TypeOut>()}, cudf::output_nullability::ALL_VALID}};

auto const range = cudf_benchmark_fragments::file_ranges[fragment_id];
std::span<uint8_t const> udf{cudf_benchmark_fragments::files.subspan(range[0], range[1])};

auto result = use_lto ? cudf::transform_lto(udf,
cudf::lto_binary_type::FATBIN,
cudf::null_aware::NO,
std::nullopt,
inputs,
outputs,
{},
std::nullopt)
: cudf::multi_transform(cuda,
cudf::udf_source_type::CUDA,
cudf::null_aware::NO,
std::nullopt,
inputs,
outputs,
{},
std::nullopt);

// use number of bytes read and written to global memory
state.add_global_memory_reads<TypeLhs>(num_rows);
state.add_global_memory_reads<TypeRhs>(num_rows);
state.add_global_memory_writes<TypeOut>(num_rows);

state.exec(nvbench::exec_tag::sync, [&](nvbench::launch&) {
[[maybe_unused]] auto result = use_lto ? cudf::transform_lto(udf,
cudf::lto_binary_type::FATBIN,
cudf::null_aware::NO,
std::nullopt,
inputs,
outputs,
{},
std::nullopt)
: cudf::multi_transform(cuda,
cudf::udf_source_type::CUDA,
cudf::null_aware::NO,
std::nullopt,
inputs,
outputs,
{},
std::nullopt);
});
}

#define BM_JIT_BINARYOP_BENCHMARK_DEFINE(name, lhs, rhs, bop, tout) \
static void name(::nvbench::state& st) \
{ \
::BM_jit_binaryop<lhs, rhs, tout>(st, ::cudf::binary_operator::bop); \
} \
NVBENCH_BENCH(name) \
.set_name("jit_binary_op_" BM_STRINGIFY(name)) \
.add_int64_axis("num_rows", {10'000, 100'000, 1'000'000, 10'000'000, 100'000'000}) \
.add_string_axis("use_lto", {"true", "false"})

#define build_name_jit(a, b, c, d) a##_##b##_##c##_##d##_jit

#define JIT_BINARYOP_BENCHMARK_DEFINE(lhs, rhs, bop, tout) \
BM_JIT_BINARYOP_BENCHMARK_DEFINE(build_name_jit(bop, lhs, rhs, tout), lhs, rhs, bop, tout)

// clang-format off
JIT_BINARYOP_BENCHMARK_DEFINE(float, float, ADD, float);
JIT_BINARYOP_BENCHMARK_DEFINE(float, float, MUL, float);
// clang-format on
Loading
Loading