1 | // clang-format off |
2 | |
3 | // Driver |
4 | PER_CUDA_FUNCTION(init, cuInit, int); |
5 | |
6 | // Device management |
7 | PER_CUDA_FUNCTION(device_get_count, cuDeviceGetCount, int *); |
8 | PER_CUDA_FUNCTION(device_get, cuDeviceGet, void *, void *); |
9 | PER_CUDA_FUNCTION(device_get_name, cuDeviceGetName, char *, int, void *); |
10 | PER_CUDA_FUNCTION(device_get_attribute, cuDeviceGetAttribute, int *, uint32, void *); |
11 | |
12 | |
13 | // Context management |
14 | PER_CUDA_FUNCTION(context_create, cuCtxCreate_v2, void*, int, void *); |
15 | PER_CUDA_FUNCTION(context_set_current, cuCtxSetCurrent, void *); |
16 | PER_CUDA_FUNCTION(context_get_current, cuCtxGetCurrent, void **); |
17 | PER_CUDA_FUNCTION(primary_context_retain, cuDevicePrimaryCtxRetain, void **, int); |
18 | PER_CUDA_FUNCTION(context_set_limit, cuCtxSetLimit, int, std::size_t); |
19 | |
20 | // Stream management |
21 | PER_CUDA_FUNCTION(stream_create, cuStreamCreate, void **, uint32); |
22 | |
23 | // Memory management |
24 | PER_CUDA_FUNCTION(memcpy_host_to_device, cuMemcpyHtoD_v2, void *, void *, std::size_t); |
25 | PER_CUDA_FUNCTION(memcpy_device_to_host, cuMemcpyDtoH_v2, void *, void *, std::size_t); |
26 | PER_CUDA_FUNCTION(memcpy_device_to_device, cuMemcpyDtoD_v2, void *, void *, std::size_t); |
27 | PER_CUDA_FUNCTION(memcpy_host_to_device_async, cuMemcpyHtoDAsync_v2, void *, void *, std::size_t, void *); |
28 | PER_CUDA_FUNCTION(memcpy_device_to_host_async, cuMemcpyDtoHAsync_v2, void *, void *, std::size_t, void*); |
29 | PER_CUDA_FUNCTION(malloc, cuMemAlloc_v2, void **, std::size_t); |
30 | PER_CUDA_FUNCTION(malloc_managed, cuMemAllocManaged, void **, std::size_t, uint32); |
31 | PER_CUDA_FUNCTION(memset, cuMemsetD8_v2, void *, uint8, std::size_t); |
32 | PER_CUDA_FUNCTION(memsetd32, cuMemsetD32_v2, void *, uint32, std::size_t); |
33 | PER_CUDA_FUNCTION(mem_free, cuMemFree_v2, void *); |
34 | PER_CUDA_FUNCTION(mem_advise, cuMemAdvise, void *, std::size_t, uint32, uint32); |
35 | PER_CUDA_FUNCTION(mem_get_info, cuMemGetInfo_v2, std::size_t *, std::size_t *); |
36 | PER_CUDA_FUNCTION(mem_get_attribute, cuPointerGetAttribute, void *, uint32, void *); |
37 | |
38 | // Module and kernels |
39 | PER_CUDA_FUNCTION(module_get_function, cuModuleGetFunction, void **, void *, const char *); |
40 | PER_CUDA_FUNCTION(module_load_data_ex, cuModuleLoadDataEx, void **, const char *, |
41 | uint32, uint32 *, void **) |
42 | PER_CUDA_FUNCTION(launch_kernel, cuLaunchKernel, void *, uint32, uint32, uint32, |
43 | uint32, uint32, uint32, uint32, void *, void **, void **); |
44 | PER_CUDA_FUNCTION(kernel_get_attribute, cuFuncGetAttribute, int *, uint32, void *); |
45 | PER_CUDA_FUNCTION(kernel_get_occupancy, cuOccupancyMaxActiveBlocksPerMultiprocessor, int *, void *, int, size_t); |
46 | |
47 | // Stream management |
48 | PER_CUDA_FUNCTION(stream_synchronize, cuStreamSynchronize, void *); |
49 | |
50 | // Event management |
51 | PER_CUDA_FUNCTION(event_create, cuEventCreate, void **, uint32) |
52 | PER_CUDA_FUNCTION(event_destroy, cuEventDestroy, void *) |
53 | PER_CUDA_FUNCTION(event_record, cuEventRecord, void *, void *) |
54 | PER_CUDA_FUNCTION(event_synchronize, cuEventSynchronize, void *); |
55 | PER_CUDA_FUNCTION(event_elapsed_time, cuEventElapsedTime, float *, void *, void *); |
56 | |
57 | // Vulkan interop |
58 | PER_CUDA_FUNCTION(import_external_memory, cuImportExternalMemory, CUexternalMemory*, CUDA_EXTERNAL_MEMORY_HANDLE_DESC*) |
59 | PER_CUDA_FUNCTION(external_memory_get_mapped_buffer,cuExternalMemoryGetMappedBuffer,CUdeviceptr *, CUexternalMemory, const CUDA_EXTERNAL_MEMORY_BUFFER_DESC *) |
60 | PER_CUDA_FUNCTION(external_memory_get_mapped_mipmapped_array,cuExternalMemoryGetMappedMipmappedArray,CUmipmappedArray *, CUexternalMemory, const CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC *) |
61 | PER_CUDA_FUNCTION(mipmapped_array_get_level,cuMipmappedArrayGetLevel,CUarray *, CUmipmappedArray, unsigned int) |
62 | PER_CUDA_FUNCTION(surf_object_create,cuSurfObjectCreate,CUsurfObject *, const CUDA_RESOURCE_DESC *) |
63 | PER_CUDA_FUNCTION(signal_external_semaphore_async,cuSignalExternalSemaphoresAsync,const CUexternalSemaphore * , const CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS * , unsigned int , CUstream) |
64 | PER_CUDA_FUNCTION(wait_external_semaphore_async,cuWaitExternalSemaphoresAsync,const CUexternalSemaphore * , const CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS * , unsigned int , CUstream) |
65 | PER_CUDA_FUNCTION(import_external_semaphore, cuImportExternalSemaphore,CUexternalSemaphore * , const CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC *) |
66 | // clang-format on |
67 | |