Vikunja is a performance portable algorithm library that defines functions operating on ranges of elements for a variety of purposes . It supports the execution on multi-core CPUs and various GPUs. Vikunja uses alpaka to implement platform-independent primitives such as reduce or transform.
One would at least need an example for all of the following:
deviceTransformReducedeviceReducedeviceTransform(..., inp, out, ...)