NVIDIA / NVIDIA/cccl

Investigate unsigned offsets in some places of `DeviceTransform`

Open
#9,145 0 comments 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

#8805 found that using a 64-bit offset type for `DeviceTransform` showed barely any regressions over using a 32-bit one. But the differences between a signed and unsigned 64-bit offset were sometimes significant, especially on B200. `int64` was overall better, but `uint64` showed speedups on some workloads as well. This begs the question, should we use `uint64` in some places of the kernel?

I would like to better understand where an unsigned offset type causes faster code to be generated. This knowledge may be useful beyond just `DeviceTransform` and should probably be written down for agents to consume.

This issue can be closed when we extracted a good understanding of where signed and unsigned offset types should be used in device code, apply this knowledge to `DeviceTransform` to show it works, and write down the basic guidelines in some maintainer documentation.

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.