alpaka-group / vikunja

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.
https://vikunja.readthedocs.io/en/latest/
Mozilla Public License 2.0
14 stars 5 forks source link

vikunja does not fully support N demension memory #61

Open SimeonEhrig opened 2 years ago

SimeonEhrig commented 2 years ago

vikunja does not care about memory pitches. Therefore multi dimensional memory is only working, if the pitch is 0. The API also does not support setting the pitch.

API design ideas

The API should still support pointers, because pointers are universal. But a memory pointer needs a lot of extra information: number of dimension, size of each dimension and pitches. Therefore at least 3 arguments are required for one bunch of memory. Maybe it could wrapped up in a (alpaka) view. The API should also support the direct usage of alpaka buffers, to make it easier.

bussmann commented 2 years ago

@bernhardmgruber