CudaBindings to the NVIDIA `cuda` library.
See enum CUresult.
val sexp_of_result : result -> Sexplib0.Sexp.tError codes returned by CUDA functions are converted to exceptions. The message stores a snake-case variant of the offending CUDA function name (see Cuda_ffi.Bindings.Functions for the direct funciton bindings).
val is_success : result -> boolval cuda_call_hook :
(message:string -> status:result -> unit) option Stdlib.refThe functions called before and after every Cuda_ffi.Bindings.Functions call. message is the snake-case variant of the corresponding CUDA function name.
Must be called before any other function. Currently flags is unused. See cuInit.
module Device : sig ... endManaging a CUDA GPU device and its primary context. See: Device Management and Primary Context Management.
module Context : sig ... endAll CUDA tasks are run under a context, usually under the current context. See: Context Management.
module Deviceptr : sig ... endThis module introduces the type of pointers into on-device global memory, and stream-independent memory management functions. All functions from this module run synchronously. See: Memory Management.
module Module : sig ... endA CUDA module type represents CUDA code that's ready to execute, i.e. is loaded. See: Module Management.
module Stream : sig ... endCUDA streams are independent FIFO schedules for CUDA tasks, allowing them to potentially run in parallel. See: Stream Management.
module Event : sig ... endCUDA events can be used for synchronization between streams without blocking the CPU, and to time the on-device execution. See: Event Management.
module Delimited_event : sig ... endThis module builds on top of functionality more directly exposed by Event. It optimizes resource management for use-cases where events are not reused: there's only one call to Event.record, and it's immediately after Event.create.