Optimise decoupled look-back for small non-primitive types
Open
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
Assessment
This issue has not been assessed yet.