[SYCL2020] Group functions by DieGoldeneEnte · Pull Request #391 · AdaptiveCpp/AdaptiveCpp (original) (raw)
This PR adds a naive implementation for group_functions to hipSYCL. This includes implementations of
- group_broadcast
- group_barrier
- group_{any,all,none]_of
- group_reduce
- group_{ex,in}clusive_scan
on CPU and NVIDIA/AMD GPUs, as well as tests for these functions. I will provide optimized versions in later PRs.
It also includes (group_)functions using two pointers (beginning/end), but these are not in the specification and are not meant to be used yet (as such they reside in the detail
namespace).
At the moment all tests pass (except some problems with the pointer-based functions on CPU which sometimes fail, I am still investigating). (private results)
I would love to get some feedback. If you find some template-parameters or formatting you don't like, there is a chance I missed them in one of my cleanup/refactoring attempts. Just tell me so I can fix it. Some small changes like splitting the tests into multiple files for faster compilation might be added here,