Investigate unsigned offsets in some places of `DeviceTransform`
- 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
Assessment
This issue has not been assessed yet.