cuda-api-wrappers icon indicating copy to clipboard operation
cuda-api-wrappers copied to clipboard

Thin, unified, C++-flavored wrappers for the CUDA APIs

Results 151 cuda-api-wrappers issues
Sort by recently updated
recently updated
newest added

At the moment, we enqueue using `my_stream.enqueue.copy(...)`, `my_stream.enqueue.kernel_launch(...)`, etc - where `stream_t::enqueue` is a dummy object which holds a reference to the stream. It helps us avoid having functions named...

We currently have copy(destination, source, length); perhaps we should change that to the same style / calling convention as the standard libary?

enhancement
question

At the moment, our CUDA error wrapper code is almost entirely custom-written, tying exceptions to CUDA error codes. C++11 has a similar mechanism for wrapping libc and other similar "system...

enhancement

We already have multiple variants of `set_headers()` and `add_headers()` implemented. However - those templated variants which take containers or container pairs assume the element type is a constant C-style string...

enhancement
resolved-on-development

While overall_dimensions_t is a 3-dimension variable, with 3 size_t's, dim3 is not - it uses unsigned ints. We should support construction using dim3's (but not the conversion back).

task
resolved-on-development

There's probably no reason the `cuda::stream_t::enqueue_t` methods are non-const - let's make the const.

task
resolved-on-development

CUDA has almost now APIs which regard pairs of events. There's certainly no CUDA driver or runtime struct fort representing event pairs. Consequently, I have no event pair wrapper. ......

question

`synchronize()` is not an intuitive-enough verb regarding what to do with an event. We should suppose `cuda::wait(my_event)` - similarly to how we chan enqueue uusing `wait(my_event)` on a steam.

task
resolved-on-development

We currently don't support `--dopt` and `--ptxas-options` in the `compilation_options_t` structure. Let's add them.

task
resolved-on-development

The `cuda::event::time_elapsed_between()` function takes two events. Let's allow it to take a pair of events as well.

enhancement
resolved-on-development