---
id: pr-cccl-cub-8355
repo: NVIDIA/cccl
pr: 8355
title: '[cub]: implement utilities for policy selection'
author: davebayer
date: '2026-04-22'
url: https://github.com/NVIDIA/cccl/pull/8355
source_category: upstream-code
architectures:
- sm100
tags:
- CUB
- memory_primitives
- policy tuning
- scan
techniques: []
hardware_features: []
kernel_types:
- memory
- scan
- sort
languages:
- cuda-cpp
captured_at: '2026-05-16'
status: merged
merge_sha: c22081cebec6edd345610c42b3ea418aa98a2a14
inclusion_reason: 'Transfer primitive policy carefully: coalescing, shared-memory staging, partial tiles, and determinism are part of the contract.'
changed_paths:
- cub/cub/block/block_load_to_shared.cuh
- cub/cub/device/dispatch/dispatch_adjacent_difference.cuh
- cub/cub/device/dispatch/dispatch_batch_memcpy.cuh
- cub/cub/device/dispatch/dispatch_find.cuh
- cub/cub/device/dispatch/dispatch_merge.cuh
- cub/cub/device/dispatch/dispatch_reduce_by_key.cuh
- cub/cub/device/dispatch/dispatch_rle.cuh
- cub/cub/device/dispatch/dispatch_scan_by_key.cuh
- cub/cub/device/dispatch/dispatch_select_if.cuh
- cub/cub/device/dispatch/dispatch_topk.cuh
- cub/cub/device/dispatch/kernels/kernel_batched_topk.cuh
- cub/cub/device/dispatch/kernels/kernel_for_each.cuh
- cub/cub/device/dispatch/kernels/kernel_histogram.cuh
- cub/cub/device/dispatch/kernels/kernel_merge_sort.cuh
- cub/cub/device/dispatch/kernels/kernel_radix_sort.cuh
- cub/cub/device/dispatch/kernels/kernel_reduce.cuh
- python/cuda_cccl/CMakeLists.txt
artifact_dir: evidence/pull-bundles/cccl-cub/gh-8355
head_ref_oid: 922a9890659656556a3e088a5fff8a80d11af0cb
---
# [cub]: implement utilities for policy selection

- Repository: `NVIDIA/cccl`
- PR: [8355](https://github.com/NVIDIA/cccl/pull/8355)
- Decision: `Transfer primitive policy carefully: coalescing, shared-memory staging, partial tiles, and determinism are part of the contract.`
- Reason: Transfer primitive policy carefully: coalescing, shared-memory staging, partial tiles, and determinism are part of the contract.

## Changed Paths

- `cub/cub/block/block_load_to_shared.cuh`
- `cub/cub/device/dispatch/dispatch_adjacent_difference.cuh`
- `cub/cub/device/dispatch/dispatch_batch_memcpy.cuh`
- `cub/cub/device/dispatch/dispatch_find.cuh`
- `cub/cub/device/dispatch/dispatch_merge.cuh`
- `cub/cub/device/dispatch/dispatch_reduce_by_key.cuh`
- `cub/cub/device/dispatch/dispatch_rle.cuh`
- `cub/cub/device/dispatch/dispatch_scan_by_key.cuh`
- `cub/cub/device/dispatch/dispatch_select_if.cuh`
- `cub/cub/device/dispatch/dispatch_topk.cuh`
- `cub/cub/device/dispatch/kernels/kernel_batched_topk.cuh`
- `cub/cub/device/dispatch/kernels/kernel_for_each.cuh`
- `cub/cub/device/dispatch/kernels/kernel_histogram.cuh`
- `cub/cub/device/dispatch/kernels/kernel_merge_sort.cuh`
- `cub/cub/device/dispatch/kernels/kernel_radix_sort.cuh`
- `cub/cub/device/dispatch/kernels/kernel_reduce.cuh`
- `python/cuda_cccl/CMakeLists.txt`

## Evidence Bundle

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