NVIDIA / NVIDIA/cccl

[DOC]: Performance best practices for passing iterators to Thrust/CUB algorithms

Open
#6,120 1 comment 0 reactions 1 assignee Claimed by @bernhardmgruber 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 bug and that I agree to the [Code of Conduct](CODE_OF_CONDUCT.md)

### Is this for new documentation, or an update to existing docs?

New

### Describe the incorrect/future/missing documentation

The choice of input/output iterators passed to CCCL's `thrust::` and `cub::` algorithms can have significant impacts on performance.

For example, oftentimes best performance is achieved by passing a raw pointer to the algorithm such that the implementation can take advantage of hardware acceleration like TMA.

These kinds of best practices should be documented.

This issue can be closed by creating a new "Performance Best Practices" top-level documentation page after CUDA Experimental in the TOC.

This page should have one or more sections relevant for documenting best practices for choosing an appropriate iterator for an algorithm.

For example, documenting the guidance to prefer using `transform_reduce` vs `transform_iterator` + `reduce`.

Image

### If this is a correction, please provide a link to the incorrect documentation. If this is a new documentation request, please link to where you have looked.

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.