cuda-api-wrappers
Thin C++-flavored wrappers for the CUDA Runtime API
|
A proxy class for CUDA streams, providing access to all Runtime API calls involving their use and management. More...
#include "current_context.hpp"
#include "current_device.hpp"
#include "error.hpp"
#include "kernel_launch.hpp"
#include "memory.hpp"
#include "miscellany.hpp"
#include "types.hpp"
#include <string>
#include <memory>
#include <utility>
#include <tuple>
#include <algorithm>
Go to the source code of this file.
Classes | |
class | cuda::stream_t |
Proxy class for a CUDA stream. More... | |
class | cuda::stream_t::enqueue_t |
A gadget through which commands are enqueued on the stream. More... | |
Namespaces | |
cuda | |
Definitions and functionality wrapping CUDA APIs. | |
cuda::memory | |
Representation, allocation and manipulation of CUDA-related memory, of different. | |
cuda::stream | |
Definitions and functionality related to CUDA streams (not including the device wrapper type stream_t itself) | |
Enumerations | |
enum | : bool { implicitly_synchronizes_with_default_stream = true, no_implicit_synchronization_with_default_stream = false, sync = implicitly_synchronizes_with_default_stream, async = no_implicit_synchronization_with_default_stream, blocking = sync, nonblocking = async } |
enum | cuda::stream::wait_condition_t : unsigned { greater_or_equal_to = CU_STREAM_WAIT_VALUE_GEQ, geq = CU_STREAM_WAIT_VALUE_GEQ, equality = CU_STREAM_WAIT_VALUE_EQ, equals = CU_STREAM_WAIT_VALUE_EQ, nonzero_after_applying_bitmask = CU_STREAM_WAIT_VALUE_AND, one_bits_overlap = CU_STREAM_WAIT_VALUE_AND, bitwise_and = CU_STREAM_WAIT_VALUE_AND, zero_bits_overlap = CU_STREAM_WAIT_VALUE_NOR, bitwise_nor = CU_STREAM_WAIT_VALUE_NOR } |
Kinds of conditions to apply to a value in GPU global memory when waiting on that value, i.e. More... | |
Functions | |
stream_t | cuda::stream::wrap (device::id_t device_id, context::handle_t context_handle, handle_t stream_handle, bool take_ownership=false, bool hold_pc_refcount_unit=false) noexcept |
Wrap an existing stream in a stream_t instance. More... | |
void | cuda::synchronize (const stream_t &stream) |
Waits for all previously-scheduled tasks on a given stream to conclude, before returning. More... | |
stream_t | cuda::stream::create (const device_t &device, bool synchronizes_with_default_stream, priority_t priority=stream::default_priority) |
Create a new stream (= queue) in the primary execution context of a CUDA device. More... | |
stream_t | cuda::stream::create (const context_t &context, bool synchronizes_with_default_stream, priority_t priority=stream::default_priority, bool hold_pc_refcount_unit=false) |
Create a new stream (= queue) in a CUDA execution context. More... | |
A proxy class for CUDA streams, providing access to all Runtime API calls involving their use and management.