NVIDIA / NVIDIA/cccl

[FEA]: Add a fixed-grid tiny-segment sort path

Open
#10,950 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
2.5k
Forks
486
Avg merge
2d 6h
Merged PRs (30d)
295

Description

### Is this a duplicate?

- [x] I confirmed there appear to be no [duplicate issues](https://github.com/NVIDIA/cccl/issues) for this request and that I agree to the [Code of Conduct](CODE_OF_CONDUCT.md)

### Area

CUB

### Is your feature request related to a problem? Please describe.

Very small segments are sensitive to queueing, launch, synchronization, and padding overhead. Sending every tiny segment through the general fine-grained work-plan and downstream kernel path may cost more than sorting it in a dedicated path.

### Describe the solution you'd like

Add a dedicated fixed-grid tiny-segment path that can claim and sort tiny segments without requiring the general sub-warp/warp kernel to own this specialization.

The implementation should be evaluated alongside the existing single-thread and fused partitioning work, and should include correctness and performance coverage for pure-tiny and mixed segment distributions.

This issue can be closed once the fixed-grid path is integrated or its approach is incorporated into the related tiny-segment work with supporting performance results.

### Describe alternatives you've considered

- Single-thread tiny-segment sorting: https://github.com/NVIDIA/cccl/issues/10792
- In-place small-segment processing during partitioning: https://github.com/NVIDIA/cccl/issues/10804

### Additional context

_No response_

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the existing CUB tiny-segment sorting paths and the related issues #10792 and #10804, then compare their partitioning and kernel approaches. The work is done when a fixed-grid path is integrated or its approach is incorporated into the related work, with correctness and performance results for pure-tiny and mixed segment distributions.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
hpc, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
40/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.