cccl icon indicating copy to clipboard operation
cccl copied to clipboard

[EPIC] Extended Floating-Point Support

Open jrhemstad opened this issue 2 years ago • 1 comments

We want to better support users in using extended floating-point types like __half and bfloat16 in our libraries.

One of the major projects would be adding new extended floating-point library types to libcu++ for things like __half and bfloat16. The main goals would be:

  • Works in host/device code
  • Seamlessly uses equivalent core language type if/when the compiler supports it
  • Conversion to/from existing cudart types
  • Eventually supersede the cudart types

CUTLASS already has implementations of these types we could use as a starting point.

### Tasks for new types
- [ ] https://github.com/NVIDIA/cccl/issues/1451
- [ ] https://github.com/NVIDIA/cccl/issues/1665
- [ ] https://github.com/NVIDIA/cccl/issues/2161
- [ ] https://github.com/NVIDIA/cccl/issues/2188
- [ ] https://github.com/NVIDIA/cccl/issues/2186
- [ ] https://github.com/NVIDIA/cccl/issues/2184
- [ ] https://github.com/NVIDIA/cccl/issues/2185
- [ ] https://github.com/NVIDIA/cccl/issues/2187
### Tasks for existing \_\_half/bfloat types
- [ ] https://github.com/NVIDIA/cccl/issues/525
### Tasks for extended floating-point vector types
- [ ] Provide extended floating-point vector types (e.g., half2)
- [ ] Provide cmath for extended floating-point vector types

jrhemstad avatar Apr 20 '23 19:04 jrhemstad

Would be eager to see this; in particular also specializations complex<__half> and complex<bfloat16>. Are there any plans on whether or when this might be available?

cmpfeil avatar Sep 22 '23 14:09 cmpfeil