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