alpaka icon indicating copy to clipboard operation
alpaka copied to clipboard

Remove CUDA vector array wrapper

Open sliwowitz opened this issue 1 year ago • 0 comments

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

sliwowitz avatar Feb 05 '24 11:02 sliwowitz