Shim layer of the cuda C-API. More...
#include <cuda.hpp>
Public Member Functions | |
| cudaAPI (cudaAPI const &)=delete | |
| void | operator= (cudaAPI const &)=delete | 
Static Public Member Functions | |
| static KVIKIO_EXPORT cudaAPI & | instance () | 
Public Attributes | |
| int | driver_version {0} | 
| decltype(cuInit) * | Init {nullptr} | 
| decltype(cuMemHostAlloc) * | MemHostAlloc {nullptr} | 
| decltype(cuMemFreeHost) * | MemFreeHost {nullptr} | 
| decltype(cuMemcpyHtoDAsync) * | MemcpyHtoDAsync {nullptr} | 
| decltype(cuMemcpyDtoHAsync) * | MemcpyDtoHAsync {nullptr} | 
| detail::AnyCallable | MemcpyBatchAsync {} | 
| decltype(cuPointerGetAttribute) * | PointerGetAttribute {nullptr} | 
| decltype(cuPointerGetAttributes) * | PointerGetAttributes {nullptr} | 
| decltype(cuCtxPushCurrent) * | CtxPushCurrent {nullptr} | 
| decltype(cuCtxPopCurrent) * | CtxPopCurrent {nullptr} | 
| decltype(cuCtxGetCurrent) * | CtxGetCurrent {nullptr} | 
| decltype(cuCtxGetDevice) * | CtxGetDevice {nullptr} | 
| decltype(cuMemGetAddressRange) * | MemGetAddressRange {nullptr} | 
| decltype(cuGetErrorName) * | GetErrorName {nullptr} | 
| decltype(cuGetErrorString) * | GetErrorString {nullptr} | 
| decltype(cuDeviceGet) * | DeviceGet {nullptr} | 
| decltype(cuDeviceGetCount) * | DeviceGetCount {nullptr} | 
| decltype(cuDeviceGetAttribute) * | DeviceGetAttribute {nullptr} | 
| decltype(cuDevicePrimaryCtxRetain) * | DevicePrimaryCtxRetain {nullptr} | 
| decltype(cuDevicePrimaryCtxRelease) * | DevicePrimaryCtxRelease {nullptr} | 
| decltype(cuStreamSynchronize) * | StreamSynchronize {nullptr} | 
| decltype(cuStreamCreate) * | StreamCreate {nullptr} | 
| decltype(cuStreamDestroy) * | StreamDestroy {nullptr} | 
| decltype(cuDriverGetVersion) * | DriverGetVersion {nullptr} | 
Shim layer of the cuda C-API.
This is a singleton class that use dlopen on construction to load the C-API of cuda.
For example, cudaAPI::instance().MemHostAlloc() corresponds to calling cuMemHostAlloc()