[EPIC] std::simd support in libcu++
- Dominant language
- C++
- Stars
- 2.5k
- Forks
- 487
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 296
Description
We should add a heterogeneous implementation of [`std::simd`](https://en.cppreference.com/w/cpp/experimental/simd/simd) to libcu++.
High-level goals:
- Works in host/device code
- Replace the need for the CUDA vector types like `int4/double2`
- Use `simd::copy_from/copy_to` to standardize how vectorized load/stores should be done in device code (replace [status quo](https://developer.nvidia.com/blog/cuda-pro-tip-increase-performance-with-vectorized-memory-access/))
- Exposure for [CUDA SIMD intrinsics](https://docs.nvidia.com/cuda/cuda-math-api/group__CUDA__MATH__INTRINSIC__SIMD.html#group__CUDA__MATH__INTRINSIC__SIMD)
### Tasks
- [ ] ~Review/discuss CUTLASS implementation of similar types~
- [ ] ~Participate in LEWG discussion on incorporating `` (see [p1928](https://wg21.link/p1928))~
Implementation of the C++ standard specification:
- [x] #8251
- [x] #8252
- [x] #8253
- [x] #8475
- [x] #8472
- [x] #8508
- [x] #8539
- [x] #8653
- [x] #8659
- [x] #8740
- [x] #8704
Optimizations:
- [x] #8951
- [x] #8873
- [ ] #8949
Non-standard extensions:
- [ ] #8994
- [ ] #9064
- [ ] #8991
Additional issues:
- [ ] (P1) Support Grace/Vera CPUs
- [ ] Notify nvbug 4211064
Contributor guide
Assessment
This issue has not been assessed yet.