Collection of CUDA wrappers for a simplified kernel call
This API is a collection of common CUDA kernels calls that I use in my programs. This is by no means a fully-fledged library. It simplifies the code and it reduces the overhead in calling native CUDA code.
This library should be changed not too often, so that once the binary is compiled, it can be paired with a manager for being used in different programming languages.
MemoryBuffer: a buffer is identified by its memory space, math domain and size. The combination of this 3 gives you a pointer that points to the allocated memory
MemoryTile: helper class that represents two dimensional buffers, and introduces the concept of rows and columns
MemoryCube: helper class that represents three dimensional buffers
SparseMemoryBuffer: helper class that represents sparse buffers, for being used by cuSparse
SparseMemoryTile: helper class that represents Compressed Sparse Row (CSR) matrices
Since there’s no name mangling, I decided to use the convention of having every function starting with a leading underscore. This way you can have a helper manager that defines the same function with no underscores that just wraps the kernel call and checks the return value.