NVIDIA / NVIDIA/cccl

Optimise decoupled look-back for small non-primitive types

Open
#913 1 comment 0 reactions 1 assignee Claimed by @elstehle View on GitHub
cub
Dominant language
C++
Stars
2.5k
Forks
486
Avg merge
2d 6h
Merged PRs (30d)
295

Description

For primitive types, the decoupled look-back combines the two memory transactions of (1) updating the tile's status (e.g., `partial`, `inclusive`) and (2) updating the tile's value. This is a welcome optimisation as it alleviates the need for extra memory barriers while reading and updating the tiles statuses.

This optimisation could be extended from primitive types to ("small") types for which memory transactions of the `status` and `value` can be combined into a single atomic memory transaction.

Reference:
https://github.com/Nvidia/cub/blob/HEAD/cub/agent/single_pass_scan_operators.cuh#L111-L123

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.