alpaka
alpaka copied to clipboard
Remove CUDA vector array wrapper
The CudaVectorArrayWrapper
class used to provide operator[]
and some other STL-like features to small CUDA vectors (like uint4
, float2
, etc.) It was used in GPU Philox implementations as storage for the counter and key. The CPU implementation used a std::array
which could not be used in device code until very recent CUDA releases which won't be our lowest supported versions for a long time to come. This posed a portability issue where we couldn't guarantee the same initialization properties in certain edge cases.
The counter and key members were replaced with our alpaka::Vec
in Philox, making the CudaVectorArrayWrapper
, which hasn't been used outside Philox, obsolete. Therefore it can be removed, and the Philox implementation simplified since it doesn't need to select the vector data backend on its own, as this responsibility lies with the alpaka::Vec
class now.
- [ ] depends on https://github.com/alpaka-group/alpaka/pull/2236