1#ifndef _CUDA_RUNTIME_API_H
2# define _CUDA_RUNTIME_API_H 1
19# if defined(__cplusplus)
35 __ESBMC_atomic_begin();
36 __ESBMC_assert(
count > 0,
"Size to be allocated may not be less than zero");
38 char *cdst = (
char *)dst;
39 const char *csrc = (
const char *)src;
40 int numbytes =
count / (
sizeof(char));
42 for (
int i = 0; i < numbytes; i++)
50template <
class T1,
class T2>
58 __ESBMC_atomic_begin();
61 __ESBMC_assert(size > 0,
"Size to be allocated may not be less than zero");
73 __ESBMC_assert(tmp ==
CUDA_SUCCESS,
"Memory was not allocated");
82 __ESBMC_atomic_begin();
96 return "CUDA_SUCCESS";
99 return "CUDA_ERROR_INVALID_VALUE";
102 return "CUDA_ERROR_OUT_OF_MEMORY";
105 return "CUDA_ERROR_NOT_INITIALIZED";
108 return "CUDA_ERROR_DEINITIALIZED";
111 return "CUDA_ERROR_PROFILER_DISABLED";
114 return "CUDA_ERROR_PROFILER_NOT_INITIALIZED";
117 return "CUDA_ERROR_PROFILER_ALREADY_STARTED";
120 return "CUDA_ERROR_PROFILER_ALREADY_STOPPED";
123 return "CUDA_ERROR_NO_DEVICE";
126 return "CUDA_ERROR_INVALID_DEVICE";
129 return "CUDA_ERROR_INVALID_IMAGE";
132 return "CUDA_ERROR_INVALID_CONTEXT";
135 return "CUDA_ERROR_CONTEXT_ALREADY_CURRENT";
138 return "CUDA_ERROR_MAP_FAILED";
141 return "CUDA_ERROR_UNMAP_FAILED";
144 return "CUDA_ERROR_ARRAY_IS_MAPPED";
147 return "CUDA_ERROR_ALREADY_MAPPED";
150 return "CUDA_ERROR_NO_BINARY_FOR_GPU";
153 return "CUDA_ERROR_ALREADY_ACQUIRED";
156 return "CUDA_ERROR_NOT_MAPPED";
159 return "CUDA_ERROR_NOT_MAPPED_AS_ARRAY";
162 return "CUDA_ERROR_NOT_MAPPED_AS_POINTER";
165 return "CUDA_ERROR_ECC_UNCORRECTABLE";
168 return "CUDA_ERROR_UNSUPPORTED_LIMIT";
171 return "CUDA_ERROR_CONTEXT_ALREADY_IN_USE";
174 return "CUDA_ERROR_PEER_ACCESS_UNSUPPORTED";
177 return "CUDA_ERROR_INVALID_PTX";
180 return "CUDA_ERROR_INVALID_GRAPHICS_CONTEXT";
183 return "CUDA_ERROR_INVALID_SOURCE";
186 return "CUDA_ERROR_FILE_NOT_FOUND";
189 return "CUDA_ERROR_SHARED_OBJECT_SYMBOL_NOT_FOUND";
192 return "CUDA_ERROR_SHARED_OBJECT_INIT_FAILED";
195 return "CUDA_ERROR_OPERATING_SYSTEM";
198 return "CUDA_ERROR_INVALID_HANDLE";
201 return "CUDA_ERROR_NOT_FOUND";
204 return "CUDA_ERROR_NOT_READY";
207 return "CUDA_ERROR_ILLEGAL_ADDRESS";
210 return "CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES";
213 return "CUDA_ERROR_LAUNCH_TIMEOUT";
216 return "CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING";
219 return "CUDA_ERROR_PEER_ACCESS_ALREADY_ENABLED";
222 return "CUDA_ERROR_PEER_ACCESS_NOT_ENABLED";
225 return "CUDA_ERROR_PRIMARY_CONTEXT_ACTIVE";
228 return "CUDA_ERROR_CONTEXT_IS_DESTROYED";
231 return "CUDA_ERROR_ASSERT";
234 return "CUDA_ERROR_TOO_MANY_PEERS";
237 return "CUDA_ERROR_HOST_MEMORY_ALREADY_REGISTERED";
240 return "CUDA_ERROR_HOST_MEMORY_NOT_REGISTERED";
243 return "CUDA_ERROR_HARDWARE_STACK_ERROR";
246 return "CUDA_ERROR_ILLEGAL_INSTRUCTION";
249 return "CUDA_ERROR_MISALIGNED_ADDRESS";
252 return "CUDA_ERROR_INVALID_ADDRESS_SPACE";
255 return "CUDA_ERROR_INVALID_PC";
258 return "CUDA_ERROR_LAUNCH_FAILED";
261 return "CUDA_ERROR_NOT_PERMITTED";
264 return "CUDA_ERROR_NOT_SUPPORTED";
267 return "CUDA_ERROR_UNKNOWN";
270 return "CUDA_SUCCESS";
294 while (auxDevice !=
NULL)
296 if (auxDevice->
id == device)
301 auxDevice = auxDevice->
prox;
307 if (newCudaDevice ==
NULL)
310 newCudaDevice->
id = device;
311 newCudaDevice->
active = 0;
331 __ESBMC_atomic_begin();
334 while (auxDevice !=
NULL)
337 auxDevice = auxDevice->
prox;
339 __ESBMC_atomic_end();
347 while (auxDevice !=
NULL)
349 if (auxDevice->
id == device)
355 auxDevice = auxDevice->
prox;
366 while (auxDevice !=
NULL)
368 if (auxDevice->
id == device)
370 if (auxDevice->
active == 1)
388 while (auxDevice !=
NULL)
390 if (auxDevice->
id == device)
395 auxDevice = auxDevice->
prox;
448 size_t offset __dv(0),
451 __ESBMC_atomic_begin();
457 __ESBMC_atomic_end();
465 size_t offset __dv(0),
468 __ESBMC_atomic_begin();
474 __ESBMC_atomic_end();
492 while (auxDevice !=
NULL)
494 if (auxDevice->
id == device)
497 prop = &deviceChosen;
500 auxDevice = auxDevice->
prox;
513 struct threadsList *
prox;
520 __ESBMC_atomic_begin();
532 __ESBMC_atomic_end();
666cudaMalloc3D(
struct cudaPitchedPtr *pitchedDevPtr,
struct cudaExtent extent);
704 struct cudaPitchedPtr pitchedDevPtr,
706 struct cudaExtent extent);
715 struct cudaPointerAttributes *attributes,
750 if (__cudaPeerAccess[pair])
761 __cudaPeerAccess[pair] = 1;
774 if (!__cudaPeerAccess[pair])
779 __cudaPeerAccess[pair] = 0;
786 const struct textureReference *texref,
788 const struct cudaChannelFormatDesc *desc,
793 const struct textureReference *texref,
795 const struct cudaChannelFormatDesc *desc,
805 const struct textureReference *texref);
808 const struct textureReference **texref,
812 const struct surfaceReference **surfref,
#define error(x)
Definition bigint.cpp:16
int __cudaDeviceCount
Definition call_kernel.h:27
unsigned int __cudaPeerIndex(int device, int peer)
Definition call_kernel.h:35
__thread int __cudaCurrentDevice
Definition call_kernel.h:29
struct threadsList threadsList_t
threadsList_t * cudaThreadList
Definition cuda.h:27
int count
Definition cuda.h:51
cudaError_t lastError
Definition cuda_error.h:414
@ CUDA_ERROR_OUT_OF_MEMORY
The API call failed because it was unable to allocate enough memory to perform the requested operatio...
Definition cuda_error.h:26
@ CUDA_ERROR_PEER_ACCESS_ALREADY_ENABLED
This error indicates that a call to cuCtxEnablePeerAccess() is trying to re-enable peer access to a c...
Definition cuda_error.h:290
@ CUDA_ERROR_PEER_ACCESS_NOT_ENABLED
This error indicates that cuCtxDisablePeerAccess() is trying to disable peer access which has not bee...
Definition cuda_error.h:297
@ CUDA_ERROR_INVALID_VALUE
This indicates that one or more of the parameters passed to the API call is not within an acceptable ...
Definition cuda_error.h:20
@ cudaErrorInvalidDevice
This indicates that the device ordinal supplied by the user does not correspond to a valid CUDA devic...
Definition cuda_error.h:72
@ CUDA_SUCCESS
The API call returned with no errors.
Definition cuda_error.h:13
@ cudaSuccess
Definition cuda_error.h:14
enum cudaError cudaError_t
Definition cuda_error.h:412
__host__ cudaError_t CUDARTAPI cudaSetDoubleForHost(double *d)
__host__ cudaError_t CUDARTAPI cudaDeviceGetByPCIBusId(int *device, const char *pciBusId)
__host__ cudaError_t CUDARTAPI cudaBindTexture(size_t *offset, const struct textureReference *texref, const void *devPtr, const struct cudaChannelFormatDesc *desc, size_t size __dv(UINT_MAX))
__host__ cudaError_t CUDARTAPI cudaThreadExit(void)
const char * cudaGetErrorString(cudaError_t error)
Definition cuda_runtime_api.h:89
__host__ cudaError_t CUDARTAPI cudaMemset3D(struct cudaPitchedPtr pitchedDevPtr, int value, struct cudaExtent extent)
__host__ cudaError_t CUDARTAPI cudaGetTextureAlignmentOffset(size_t *offset, const struct textureReference *texref)
cudaError_t cudaDeviceGetSharedMemConfig(int device)
Definition cuda_runtime_api.h:555
__host__ __cudart_builtin__ cudaError_t CUDARTAPI cudaDeviceGetStreamPriorityRange(int *leastPriority, int *greatestPriority)
cudaError_t cudaDeviceGetLimit(int device)
Definition cuda_runtime_api.h:543
int cudaDeviceStart(int device)
Definition cuda_runtime_api.h:384
__host__ __cudart_builtin__ cudaError_t CUDARTAPI cudaGetDevice(int *device)
__host__ cudaError_t CUDARTAPI cudaLaunch(const void *func)
__host__ cudaError_t CUDARTAPI cudaDeviceGetPCIBusId(char *pciBusId, int len, int device)
cudaError_t cudaMemcpy(T1 dst, T2 src, size_t count, enum cudaMemcpyKind kind)
Definition cuda_runtime_api.h:51
__host__ cudaError_t CUDARTAPI cudaMalloc3D(struct cudaPitchedPtr *pitchedDevPtr, struct cudaExtent extent)
__host__ cudaError_t CUDARTAPI cudaDriverGetVersion(int *driverVersion)
__host__ cudaError_t CUDARTAPI cudaMemcpy3DPeer(const struct cudaMemcpy3DPeerParms *p)
cudaError_t cudaDeviceReset()
Definition cuda_runtime_api.h:423
int cudaDeviceActive(int device)
Definition cuda_runtime_api.h:362
void cudaDeviceInsert(int device)
Definition cuda_runtime_api.h:289
void __syncthreads()
Definition cuda_runtime_api.h:567
cudaError_t cudaMemcpyFromSymbol(void *dst, const void *symbol, size_t count, size_t offset __dv(0), enum cudaMemcpyKind kind __dv(cudaMemcpyDeviceToHost))
Definition cuda_runtime_api.h:461
cudaError_t cudaGetLastError()
Definition cuda_runtime_api.h:505
__host__ cudaError_t CUDARTAPI cudaGetTextureReference(const struct textureReference **texref, const void *symbol)
__host__ __cudart_builtin__ cudaError_t CUDARTAPI cudaGetDeviceProperties(struct cudaDeviceProp *prop, int device)
Definition cuda_runtime_api.h:484
__host__ cudaError_t CUDARTAPI cudaMemcpy3D(const struct cudaMemcpy3DParms *p)
__host__ cudaError_t CUDARTAPI cudaGetSurfaceReference(const struct surfaceReference **surfref, const void *symbol)
cudaError_t cudaGetDeviceCount(int *count)
Definition cuda_runtime_api.h:414
__host__ cudaError_t CUDARTAPI cudaBindTexture2D(size_t *offset, const struct textureReference *texref, const void *devPtr, const struct cudaChannelFormatDesc *desc, size_t width, size_t height, size_t pitch)
__host__ __cudart_builtin__ const char *CUDARTAPI cudaGetErrorName(cudaError_t error)
__host__ cudaError_t CUDARTAPI cudaMemset(void *devPtr, int value, size_t count)
__host__ cudaError_t CUDARTAPI cudaMemcpyPeer(void *dst, int dstDevice, const void *src, int srcDevice, size_t count)
__host__ __cudart_builtin__ cudaError_t CUDARTAPI cudaRuntimeGetVersion(int *runtimeVersion)
cudaError_t cudaSetDevice(int device)
Definition cuda_runtime_api.h:401
__host__ __cudart_builtin__ cudaError_t CUDARTAPI cudaEventCreateWithFlags(cudaEvent_t *event, unsigned int flags)
__host__ cudaError_t CUDARTAPI cudaUnbindTexture(const struct textureReference *texref)
__host__ cudaError_t CUDARTAPI cudaHostAlloc(void **pHost, size_t size, unsigned int flags)
__host__ cudaError_t CUDARTAPI cudaIpcCloseMemHandle(void *devPtr)
__host__ cudaError_t CUDARTAPI cudaSetValidDevices(int *device_arr, int len)
__host__ cudaError_t CUDARTAPI cudaMallocHost(void **ptr, size_t size)
__host__ cudaError_t CUDARTAPI cudaEventSynchronize(cudaEvent_t event)
void __threadfence()
Definition cuda_runtime_api.h:571
cudaError_t cudaDeviceEnablePeerAccess(int peerDevice, unsigned int flags)
Definition cuda_runtime_api.h:735
__host__ cudaError_t CUDARTAPI cudaSetupArgument(const void *arg, size_t size, size_t offset)
__host__ cudaError_t CUDARTAPI cudaHostUnregister(void *ptr)
struct cudaDevicesList cudaDeviceList_t
Structure that represents the devices of CUDA.
cudaError_t cudaThreadSynchronize()
Definition cuda_runtime_api.h:518
__host__ cudaError_t CUDARTAPI cudaChooseDevice(int *device, const struct cudaDeviceProp *prop)
__host__ cudaError_t CUDARTAPI cudaGetSymbolSize(size_t *size, const void *symbol)
void cudaPrintDevice()
Definition cuda_runtime_api.h:328
cudaError_t cudaDeviceDisablePeerAccess(int peerDevice)
Definition cuda_runtime_api.h:766
__host__ cudaError_t CUDARTAPI cudaSetDeviceFlags(unsigned int flags)
__host__ cudaError_t CUDARTAPI cudaHostRegister(void *ptr, size_t size, unsigned int flags)
cudaError_t cudaFree(void *devPtr)
Definition cuda_runtime_api.h:80
__host__ cudaError_t CUDARTAPI cudaMemset2D(void *devPtr, size_t pitch, int value, size_t width, size_t height)
__host__ cudaError_t CUDARTAPI cudaFreeHost(void *ptr)
cudaError_t __cudaMemcpy(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind)
impl_private
Definition cuda_runtime_api.h:33
__host__ __cudart_builtin__ cudaError_t CUDARTAPI cudaDeviceSynchronize(void)
__host__ cudaError_t CUDARTAPI cudaEventElapsedTime(float *ms, cudaEvent_t start, cudaEvent_t end)
cudaError_t cudaDeviceCanAccessPeer(int *canAccessPeer, int device, int peerDevice)
Definition cuda_runtime_api.h:720
__host__ cudaError_t CUDARTAPI cudaEventQuery(cudaEvent_t event)
__host__ cudaError_t CUDARTAPI cudaHostGetDevicePointer(void **pDevice, void *pHost, unsigned int flags)
__host__ cudaError_t CUDARTAPI cudaHostGetFlags(unsigned int *pFlags, void *pHost)
cudaError_t cudaMalloc(void **devPtr, size_t size)
Definition cuda_runtime_api.h:56
cudaError_t cudaMemcpyToSymbol(const void *symbol, const void *src, size_t count, size_t offset __dv(0), enum cudaMemcpyKind kind __dv(cudaMemcpyHostToDevice))
Definition cuda_runtime_api.h:444
__host__ __cudart_builtin__ cudaError_t CUDARTAPI cudaMallocManaged(void **devPtr, size_t size, unsigned int flags)
__host__ __cudart_builtin__ cudaError_t CUDARTAPI cudaEventDestroy(cudaEvent_t event)
__host__ __cudart_builtin__ cudaError_t CUDARTAPI cudaFuncGetAttributes(struct cudaFuncAttributes *attr, const void *func)
__host__ cudaError_t CUDARTAPI cudaMemGetInfo(size_t *free, size_t *total)
cudaDeviceList_t * cudaDeviceList
Definition cuda_runtime_api.h:286
__host__ cudaError_t CUDARTAPI cudaGetSymbolAddress(void **devPtr, const void *symbol)
__device__ __cudart_builtin__ cudaError_t CUDARTAPI cudaDeviceGetAttribute(int *value, enum cudaDeviceAttr attr, int device)
Definition cuda_runtime_api.h:537
__host__ cudaError_t CUDARTAPI cudaMemcpy2D(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, size_t height, enum cudaMemcpyKind kind)
int searchCudaDevice(int device)
Definition cuda_runtime_api.h:343
__host__ __cudart_builtin__ cudaError_t CUDARTAPI cudaPeekAtLastError(void)
__host__ cudaError_t CUDARTAPI cudaSetDoubleForDevice(double *d)
cudaError_t cudaDeviceGetCacheConfig(int device)
Definition cuda_runtime_api.h:549
__host__ cudaError_t CUDARTAPI cudaEventCreate(cudaEvent_t *event)
__host__ cudaError_t CUDARTAPI cudaMallocPitch(void **devPtr, size_t *pitch, size_t width, size_t height)
__host__ cudaError_t CUDARTAPI cudaPointerGetAttributes(struct cudaPointerAttributes *attributes, const void *ptr)
cudaMemcpyDeviceToHost
Device -> Host.
Definition driver_types.h:26
enum __device_builtin__ cudaDeviceAttr
Definition driver_types.h:127
cudaMemcpyHostToDevice
Host -> Device.
Definition driver_types.h:25
enum __device_builtin__ cudaMemcpyKind
Definition driver_types.h:23
__device_builtin__ struct CUevent_st * cudaEvent_t
Definition driver_types.h:38
#define __host__
Definition host_defines.h:112
#define __cudart_builtin__
Definition host_defines.h:123
#define __device__
Definition host_defines.h:113
#define UINT_MAX
Definition limits.h:32
#define NULL
Definition pthread.h:32
unsigned long int pthread_t
Definition pthread.h:41
int pthread_join(pthread_t __th, void **__thread_return)
void * malloc(size_t size)
Definition driver_types.h:41
Structure that represents the devices of CUDA.
Definition cuda_runtime_api.h:279
int active
Definition cuda_runtime_api.h:281
struct cudaDevicesList * prox
Definition cuda_runtime_api.h:283
struct cudaDeviceProp deviceProp
Definition cuda_runtime_api.h:282
int id
Definition cuda_runtime_api.h:280
pthread_t thread
Definition cuda.h:23
struct threadsList * prox
Definition cuda.h:24