Skip to content

Forward-merge release/26.10 into main - #24115

Merged
14 commits merged into
mainfrom
release/26.10
Sep 14, 2026
Merged

14 commits merged into
mainfrom
release/26.10

Conversation

@rapids-bot

@rapids-bot rapids-bot Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Forward-merge triggered by push to release/26.10 that creates a PR to keep main up-to-date. If this PR is unable to be immediately merged due to conflicts, it will remain open for the team to manually merge. See forward-merger docs for more info.

wence- and others added 3 commits September 9, 2026 18:36
Defaults cudf-polars to the kvikio MULTI_POLL backend with new defaults for `kvikio_task_size`, `kvikio_bounce_buffer_bytes`, `kvikio_reactor_count`, `kvikio_reactor_dispatch`, and `kvikio_request_ceiling`. These are the best defaults we've found based on benchmarking on a g7e.8xlarge instance.

| Setting | MULTI_POLL default | EASY_THREADPOOL default |
|---|---|---|
| `kvikio_remote_io_backend` | `MULTI_POLL` | `EASY_THREADPOOL` |
| `kvikio_task_size` | 16 MiB | 64 MiB |
| `kvikio_bounce_buffer_bytes` | 16 MiB | 16 MiB |
| `kvikio_nthreads` | unset (defers to kvikio's own default) | 256 |
| `kvikio_reactor_count` | 24 | not used |
| `kvikio_reactor_dispatch` | `PER_CHUNK` | not used |
| `kvikio_request_ceiling` | 256 | not used |

Notes:
- MULTI_POLL doesn't use `kvikio_nthreads` for remote I/O, it uses the reactor threads instead, so we don't force that pool to 256 threads under MULTI_POLL. 
- EASY_THREADPOOL doesn't use the reactor settings at all. 
- `kvikio_bounce_buffer_bytes` applies to both backends, it's not MULTI_POLL-specific.

- Depends on rapidsai/kvikio#1049
- Depends on #23683

Authors:
  - Matthew Murray (https://github.com/Matt711)
  - Peter Andreas Entschev (https://github.com/pentschev)

Approvers:
  - Peter Andreas Entschev (https://github.com/pentschev)

URL: #23839
@rapids-bot
rapids-bot Bot requested a review from a team as a code owner September 10, 2026 19:31
@rapids-bot
rapids-bot Bot requested a review from wence- September 10, 2026 19:31
@rapids-bot

rapids-bot Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor Author

FAILURE - Unable to forward-merge due to an error, manual merge is necessary. Do not use the Resolve conflicts option in this PR, follow these instructions https://docs.rapids.ai/maintainers/forward-merger/

IMPORTANT: When merging this PR, do not use the auto-merger (i.e. the /merge comment). Instead, an admin must manually merge by changing the merging strategy to Create a Merge Commit. Otherwise, history will be lost and the branches become incompatible.

@github-actions github-actions Bot added Python Affects Python cuDF API. cudf-polars Issues specific to cudf-polars labels Sep 10, 2026
vyasr and others added 5 commits September 10, 2026 14:21
Signed-off-by: nvskills-svc-account <svc-nvskills-signing@nvidia.com>
Fixes undefined behavior in `cudf::io::parquet::detail::CompactProtocolReader::get_varint`, where a shift operation can shift number past the bit width of the result type.

New tests are added to cover such corner cases.

Authors:
  - Nghia Truong (https://github.com/ttnghia)

Approvers:
  - Lawrence Mitchell (https://github.com/wence-)
  - Muhammad Haseeb (https://github.com/mhaseeb123)
  - Igor Peshansky (https://github.com/igorpeshansky)
  - Vukasin Milovanovic (https://github.com/vuule)

URL: #23346
@rapids-bot
rapids-bot Bot requested review from a team as code owners September 11, 2026 03:37
@rapids-bot
rapids-bot Bot requested a review from bdice September 11, 2026 03:37
@github-actions github-actions Bot added libcudf Affects libcudf (C++/CUDA) code. CMake CMake build issue labels Sep 11, 2026
mhaseeb123 and others added 2 commits September 11, 2026 04:22
This PR adds significant improvements to hybrid scan metadata handling including:

- Add a new constructor that takes in pre-materialized footers via move semantics. 
- Reuse the parallel footer parser from base class.
- Enable skipping page-index setup when moved in footer already has it.
- Mismatched schema across files only resolved for selected columns at column selection time.
- Similarly, mismatched nullability across sources only resolved at column selection time.
- Honors case sensitive names in column selection.
- Uses per-source column-chunk mapping in `create_global_chunk_info` which previously reused row group zero's mapping across all sources.
- Fixes `reset_output_buffers` to reset the buffers as well as the template.

Authors:
  - Muhammad Haseeb (https://github.com/mhaseeb123)

Approvers:
  - Vukasin Milovanovic (https://github.com/vuule)
  - Nghia Truong (https://github.com/ttnghia)

URL: #23795
Follows up #23836. Do not turn on pinned memory for systems that do not support it.

Authors:
  - Matthew Murray (https://github.com/Matt711)

Approvers:
  - Tom Augspurger (https://github.com/TomAugspurger)
  - Peter Andreas Entschev (https://github.com/pentschev)

URL: #24129
)

This reverts commit 4416a6c.

Per discussion, this barely has any time savings per build, and there at least two multi-process caching bugs in released Cython versions today:

- cython/cython#7983 and cython/cython#7985

Until we're happy that caching in Cython is safe to use in a multi-job build situation, let's just disable it.

Authors:
  - Lawrence Mitchell (https://github.com/wence-)

Approvers:
  - Gil Forsyth (https://github.com/gforsyth)
  - Bradley Dice (https://github.com/bdice)

URL: #24132
@rapids-bot
rapids-bot Bot requested a review from a team as a code owner September 11, 2026 16:37
@github-actions github-actions Bot added the pylibcudf Issues specific to the pylibcudf package label Sep 11, 2026
Updated cudf-polars to support Polars 1.43 and Polars 1.44.

The plan is to support Polars 2 in the next release. And remove all 1.XX version guards.

Authors:
  - Matthew Murray (https://github.com/Matt711)

Approvers:
  - Kyle Edwards (https://github.com/KyleFromNVIDIA)
  - Matthew Roeschke (https://github.com/mroeschke)

URL: #23914
@rapids-bot
rapids-bot Bot requested a review from a team as a code owner September 11, 2026 21:06
…23929)

## Summary

Track the coordinated migration of stream APIs and call sites from `rmm::cuda_stream_view` to CCCL's `cuda::stream_ref`. This propagates `cuda::stream_ref` through RMM containers and memory resources, RAFT resource and handle APIs, downstream C++ interfaces, Python/Cython bindings, benchmarks, tests, and documentation.

This updates cuDF C++ and Cython stream accessors, building on the default-stream work merged in #23770. It continues work from #23636.

Depends on rapidsai/rmm#2372.

Tracked in rapidsai/build-planning#318.

## Migrations

- Pass `cuda::stream_ref` through stream pools, resource accessors, conditionals, and downstream APIs without converting to `rmm::cuda_stream_view`
- Use `cuda::stream_ref` constructions for default/legacy/per-thread streams
  - `rmm::cuda_stream_default` ➡️ `cuda::stream_ref{cudaStream_t{cudaStreamDefault}}`
  - `rmm::cuda_stream_legacy` ➡️ `cuda::stream_ref{cudaStreamLegacy}`
  - `rmm::cuda_stream_per_thread` ➡️ `cuda::stream_ref{cudaStreamPerThread}`
- Use `.get()` when calling an API that requires a raw `cudaStream_t`, including CUDA runtime, library, CUB, and legacy API boundaries (previously `rmm::cuda_stream_view` used `value()`)
- Use `.sync()` when synchronizing a `cuda::stream_ref` (previously `rmm::cuda_stream_view` used `synchronize()`)
- Update Cython declarations and call sites to pass stream references directly where supported

## CUDA context initialization

Includes the context fix from #24147 so it lands together with the stream migration. `cuda::stream_ref::sync()` calls the CUDA Driver API, which does not implicitly establish a current context on fresh execution threads. Empty-column/metadata operations can therefore fail with `CUDA_ERROR_INVALID_CONTEXT` in Dask-cuDF and cuStreamz.

`pylibcudf.utils._get_stream()` now calls `_ensure_cuda_context()`, which uses `cuda.bindings.cyruntime.cudaFree(NULL)` to establish a current context when needed. RMM is unchanged, initialization does not occur at import time, and no profiler-header dependency is needed. Runtime `cudaStream_t` objects are accepted directly, including older bindings versions without `__cuda_stream__` support.

The runtime-only `_get_stream()` measured **126 ns** per warm call, **7.11 µs** for first use on a fresh thread, and **192 ms** for first-process CUDA initialization. It returned while GPU work remained pending in all four tested stream modes; no forced GPU synchronization was observed. The current implementation releases the GIL on every call, which can introduce scheduling delays under Python-thread contention. See [updated benchmark methodology, comparisons, and validation limitations](#23929 (comment)).

Authors:
  - Bradley Dice (https://github.com/bdice)

Approvers:
  - Muhammad Haseeb (https://github.com/mhaseeb123)
  - Vyas Ramasubramani (https://github.com/vyasr)

URL: #23929
@rapids-bot
rapids-bot Bot requested review from a team as code owners September 14, 2026 01:22
@rapids-bot rapids-bot Bot closed this pull request by merging all changes into main in 09ad261 Sep 14, 2026
@github-project-automation github-project-automation Bot moved this from Todo to Done in cuDF Python Sep 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CMake CMake build issue cudf-polars Issues specific to cudf-polars libcudf Affects libcudf (C++/CUDA) code. pylibcudf Issues specific to the pylibcudf package Python Affects Python cuDF API.

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

7 participants