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()