Hello forum denizens,
I’ve just published a repository on GitHub:
cuda-api-wrappers: Thin C+±flavored wrappers for the CUDA runtime API
It’s a small header-mostly library, intended to allow for more C+±ish use of the CUDA Runtime API (which is very C-ish). Main features/design goals are:
- Exceptions-with-status-data instead of returning status code.
- Proxy objects for streams, devices, etc.
- Judicious use of namespacing.
- Straightforwardness and clarity in naming and semantics
- Thin and very lightweight - mostly vanishes when compiling
- Doesn't force any rich abstractions on you - merely exposes the runtime API in a different way
- No work done behind your back
The library is not specific to my own research (which involves use of GPUs in DBMSes) but is basically general-purpose; I haven’t seen something similar to it so far so I’m hoping more than a few people might find it useful.
Now, beside the shameless pitch here, I would also very much appreciate feedback from people, both on the design decisions and on potential invalid/buggy behavior. I have been using this code for a while now, but I don’t actually need all of the Runtime API so some of the code is not well-tested.