"Grunnur" means "foundation" in Icelandic.
Grunnur is a thin layer on top of PyCUDA and PyOpenCL that makes it easier to write platform-agnostic programs.
It is a reworked cluda
submodule of Reikna, extracted into a separate module.
Warning: The current version is not very stable and the public API is subject to change as I'm transferring the functionality from Reikna and extending it to support multi-GPU configurations. Bug reports are welcome, and especially welcome are any suggestions about the public API.
- For the majority of cases, allows one to write platform-independent code.
- Simple usage of multiple GPUs (in particular, no need to worry about context switching for CUDA).
- A way to split kernel code into modules with dependencies between them (see Modules and Snippets).
- Various mathematical functions (with complex numbers support) organized as modules.
- Static kernels, where you can use global/local shapes with any kinds of dimensions without worrying about assembling array indices from
blockIdx
andgridIdx
. - A temporary buffer manager that can pack several virtual buffers into the same physical one depending on the declared dependencies between them.