---
id: pr-cccl-cub-5578
repo: NVIDIA/cccl
pr: 5578
title: '`cuda.cccl.parallel`: Expose "well-known" operations to Python'
author: shwina
date: '2025-08-26'
url: https://github.com/NVIDIA/cccl/pull/5578
source_category: upstream-code
architectures:
- sm90
tags:
- benchmark_test
- memory_primitives
- segmented reduce
- segmented scan
techniques: []
hardware_features: []
kernel_types:
- memory
- reduction
- scan
- sort
languages:
- cuda-cpp
captured_at: '2026-05-16'
status: merged
merge_sha: b2c32be4e9d55f812a475d93a976d6ed356c54ed
inclusion_reason: Mine shape sets, tolerance rules, warmup logic, and profile commands before mutating code.
changed_paths:
- python/cuda_cccl/benchmarks/parallel/bench_merge_sort.py
- python/cuda_cccl/benchmarks/parallel/bench_reduce.py
- python/cuda_cccl/benchmarks/parallel/bench_scan.py
- python/cuda_cccl/benchmarks/parallel/bench_transform.py
- python/cuda_cccl/cuda/cccl/parallel/experimental/__init__.py
- python/cuda_cccl/cuda/cccl/parallel/experimental/_bindings.pyi
- python/cuda_cccl/cuda/cccl/parallel/experimental/_bindings_impl.pyx
- python/cuda_cccl/cuda/cccl/parallel/experimental/_cccl_interop.py
- python/cuda_cccl/cuda/cccl/parallel/experimental/algorithms/_merge_sort.py
- python/cuda_cccl/cuda/cccl/parallel/experimental/algorithms/_reduce.py
- python/cuda_cccl/cuda/cccl/parallel/experimental/algorithms/_scan.py
- python/cuda_cccl/cuda/cccl/parallel/experimental/algorithms/_segmented_reduce.py
- python/cuda_cccl/cuda/cccl/parallel/experimental/algorithms/_transform.py
- python/cuda_cccl/cuda/cccl/parallel/experimental/algorithms/_unique_by_key.py
- python/cuda_cccl/cuda/cccl/parallel/experimental/op.py
- python/cuda_cccl/tests/parallel/examples/iterator/counting_iterator.py
- python/cuda_cccl/tests/parallel/examples/iterator/transform_iterator.py
- python/cuda_cccl/tests/parallel/examples/reduction/basic_reduction.py
- python/cuda_cccl/tests/parallel/examples/reduction/reduce_object.py
- python/cuda_cccl/tests/parallel/examples/scan/basic_scan.py
- python/cuda_cccl/tests/parallel/examples/scan/exclusive_scan_object.py
- python/cuda_cccl/tests/parallel/examples/scan/inclusive_scan_object.py
- python/cuda_cccl/tests/parallel/examples/segmented/segmented_reduce.py
- python/cuda_cccl/tests/parallel/examples/segmented/segmented_reduce_object.py
- python/cuda_cccl/tests/parallel/examples/sort/merge_sort.py
- python/cuda_cccl/tests/parallel/examples/sort/merge_sort_object.py
- python/cuda_cccl/tests/parallel/examples/transform/binary_transform_object.py
artifact_dir: evidence/pull-bundles/cccl-cub/gh-5578
head_ref_oid: 4b290c09090b92a4a744790a06a0cfff738595e9
---
# `cuda.cccl.parallel`: Expose "well-known" operations to Python

- Repository: `NVIDIA/cccl`
- PR: [5578](https://github.com/NVIDIA/cccl/pull/5578)
- Decision: `Mine shape sets, tolerance rules, warmup logic, and profile commands before mutating code.`
- Reason: Mine shape sets, tolerance rules, warmup logic, and profile commands before mutating code.

## Changed Paths

- `python/cuda_cccl/benchmarks/parallel/bench_merge_sort.py`
- `python/cuda_cccl/benchmarks/parallel/bench_reduce.py`
- `python/cuda_cccl/benchmarks/parallel/bench_scan.py`
- `python/cuda_cccl/benchmarks/parallel/bench_transform.py`
- `python/cuda_cccl/cuda/cccl/parallel/experimental/__init__.py`
- `python/cuda_cccl/cuda/cccl/parallel/experimental/_bindings.pyi`
- `python/cuda_cccl/cuda/cccl/parallel/experimental/_bindings_impl.pyx`
- `python/cuda_cccl/cuda/cccl/parallel/experimental/_cccl_interop.py`
- `python/cuda_cccl/cuda/cccl/parallel/experimental/algorithms/_merge_sort.py`
- `python/cuda_cccl/cuda/cccl/parallel/experimental/algorithms/_reduce.py`
- `python/cuda_cccl/cuda/cccl/parallel/experimental/algorithms/_scan.py`
- `python/cuda_cccl/cuda/cccl/parallel/experimental/algorithms/_segmented_reduce.py`
- `python/cuda_cccl/cuda/cccl/parallel/experimental/algorithms/_transform.py`
- `python/cuda_cccl/cuda/cccl/parallel/experimental/algorithms/_unique_by_key.py`
- `python/cuda_cccl/cuda/cccl/parallel/experimental/op.py`
- `python/cuda_cccl/tests/parallel/examples/iterator/counting_iterator.py`
- `python/cuda_cccl/tests/parallel/examples/iterator/transform_iterator.py`
- `python/cuda_cccl/tests/parallel/examples/reduction/basic_reduction.py`
- `python/cuda_cccl/tests/parallel/examples/reduction/reduce_object.py`
- `python/cuda_cccl/tests/parallel/examples/scan/basic_scan.py`
- `python/cuda_cccl/tests/parallel/examples/scan/exclusive_scan_object.py`
- `python/cuda_cccl/tests/parallel/examples/scan/inclusive_scan_object.py`
- `python/cuda_cccl/tests/parallel/examples/segmented/segmented_reduce.py`
- `python/cuda_cccl/tests/parallel/examples/segmented/segmented_reduce_object.py`
- `python/cuda_cccl/tests/parallel/examples/sort/merge_sort.py`
- `python/cuda_cccl/tests/parallel/examples/sort/merge_sort_object.py`
- `python/cuda_cccl/tests/parallel/examples/transform/binary_transform_object.py`

## Evidence Bundle

`evidence/pull-bundles/cccl-cub/gh-5578`
