NVIDIA / NVIDIA/cccl

[EPIC] std::simd support in libcu++

Open
#30 7 comments 2 reactions 1 assignee Claimed by @fbusato View on GitHub
2024-2025 goal 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

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.