]> gitweb.factorcode.org Git - factor.git/blob - extra/cuda/ffi/ffi.factor
Update some copyright headers to follow the current convention
[factor.git] / extra / cuda / ffi / ffi.factor
1 ! Copyright (C) 2010 Joe Groff.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors alien alien.c-types alien.libraries alien.syntax
4 classes.struct combinators kernel system ;
5 IN: cuda.ffi
6
7 <<
8 "cuda" {
9     { [ os windows? ] [ "nvcuda.dll" stdcall ] }
10     { [ os macosx? ] [ "/usr/local/cuda/lib/libcuda.dylib" cdecl ] }
11     { [ os unix? ] [ "libcuda.so" cdecl ] }
12 } cond add-library
13 >>
14
15 LIBRARY: cuda
16
17 TYPEDEF: uint CUdeviceptr
18 TYPEDEF: int CUdevice
19 TYPEDEF: void* CUcontext
20 TYPEDEF: void* CUmodule
21 TYPEDEF: void* CUfunction
22 TYPEDEF: void* CUarray
23 TYPEDEF: void* CUtexref
24 TYPEDEF: void* CUevent
25 TYPEDEF: void* CUstream
26 TYPEDEF: void* CUgraphicsResource
27
28 ! versions of double and longlong that always 8-byte align
29
30 SYMBOLS: CUdouble CUlonglong CUulonglong ;
31
32 <<
33 : always-8-byte-align ( c-type -- c-type )
34     8 >>align 8 >>align-first ;
35
36 longlong  lookup-c-type clone always-8-byte-align \ CUlonglong  typedef
37 ulonglong lookup-c-type clone always-8-byte-align \ CUulonglong typedef
38 double    lookup-c-type clone always-8-byte-align \ CUdouble    typedef
39 >>
40
41 STRUCT: CUuuid
42     { bytes char[16] } ;
43
44 ENUM: CUctx_flags
45     { CU_CTX_SCHED_AUTO  0 }
46     { CU_CTX_SCHED_SPIN  1 }
47     { CU_CTX_SCHED_YIELD 2 }
48     { CU_CTX_SCHED_MASK  3 }
49     { CU_CTX_BLOCKING_SYNC 4 }
50     { CU_CTX_MAP_HOST      8 }
51     { CU_CTX_LMEM_RESIZE_TO_MAX 16 }
52     { CU_CTX_FLAGS_MASK  0x1f } ;
53
54 ENUM: CUevent_flags
55     { CU_EVENT_DEFAULT       0 }
56     { CU_EVENT_BLOCKING_SYNC 1 } ;
57
58 ENUM: CUarray_format
59     { CU_AD_FORMAT_UNSIGNED_INT8  0x01 }
60     { CU_AD_FORMAT_UNSIGNED_INT16 0x02 }
61     { CU_AD_FORMAT_UNSIGNED_INT32 0x03 }
62     { CU_AD_FORMAT_SIGNED_INT8    0x08 }
63     { CU_AD_FORMAT_SIGNED_INT16   0x09 }
64     { CU_AD_FORMAT_SIGNED_INT32   0x0a }
65     { CU_AD_FORMAT_HALF           0x10 }
66     { CU_AD_FORMAT_FLOAT          0x20 } ;
67
68 ENUM: CUaddress_mode
69     { CU_TR_ADDRESS_MODE_WRAP   0 }
70     { CU_TR_ADDRESS_MODE_CLAMP  1 }
71     { CU_TR_ADDRESS_MODE_MIRROR 2 } ;
72
73 ENUM: CUfilter_mode
74     { CU_TR_FILTER_MODE_POINT  0 }
75     { CU_TR_FILTER_MODE_LINEAR 1 } ;
76
77 ENUM: CUdevice_attribute
78     { CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_BLOCK 1 }
79     { CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_X 2 }
80     { CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Y 3 }
81     { CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Z 4 }
82     { CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_X 5 }
83     { CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Y 6 }
84     { CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Z 7 }
85     { CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK 8 }
86     { CU_DEVICE_ATTRIBUTE_SHARED_MEMORY_PER_BLOCK 8 }
87     { CU_DEVICE_ATTRIBUTE_TOTAL_CONSTANT_MEMORY 9 }
88     { CU_DEVICE_ATTRIBUTE_WARP_SIZE 10 }
89     { CU_DEVICE_ATTRIBUTE_MAX_PITCH 11 }
90     { CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_BLOCK 12 }
91     { CU_DEVICE_ATTRIBUTE_REGISTERS_PER_BLOCK 12 }
92     { CU_DEVICE_ATTRIBUTE_CLOCK_RATE 13 }
93     { CU_DEVICE_ATTRIBUTE_TEXTURE_ALIGNMENT 14 }
94
95     { CU_DEVICE_ATTRIBUTE_GPU_OVERLAP 15 }
96     { CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT 16 }
97     { CU_DEVICE_ATTRIBUTE_KERNEL_EXEC_TIMEOUT 17 }
98     { CU_DEVICE_ATTRIBUTE_INTEGRATED 18 }
99     { CU_DEVICE_ATTRIBUTE_CAN_MAP_HOST_MEMORY 19 }
100     { CU_DEVICE_ATTRIBUTE_COMPUTE_MODE 20 }
101     { CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_WIDTH 21 }
102     { CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_WIDTH 22 }
103     { CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_HEIGHT 23 }
104     { CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH 24 }
105     { CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT 25 }
106     { CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH 26 }
107     { CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_WIDTH 27 }
108     { CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_HEIGHT 28 }
109     { CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_NUMSLICES 29 }
110     { CU_DEVICE_ATTRIBUTE_SURFACE_ALIGNMENT 30 }
111     { CU_DEVICE_ATTRIBUTE_CONCURRENT_KERNELS 31 }
112     { CU_DEVICE_ATTRIBUTE_ECC_ENABLED 32 } ;
113
114 STRUCT: CUdevprop
115     { maxThreadsPerBlock int }
116     { maxThreadsDim int[3] }
117     { maxGridSize int[3] }
118     { sharedMemPerBlock int }
119     { totalConstantMemory int }
120     { SIMDWidth int }
121     { memPitch int }
122     { regsPerBlock int }
123     { clockRate int }
124     { textureAlign int } ;
125
126 ENUM: CUfunction_attribute
127     { CU_FUNC_ATTRIBUTE_MAX_THREADS_PER_BLOCK 0 }
128     { CU_FUNC_ATTRIBUTE_SHARED_SIZE_BYTES 1     }
129     { CU_FUNC_ATTRIBUTE_CONST_SIZE_BYTES 2      }
130     { CU_FUNC_ATTRIBUTE_LOCAL_SIZE_BYTES 3      }
131     { CU_FUNC_ATTRIBUTE_NUM_REGS 4              }
132     { CU_FUNC_ATTRIBUTE_PTX_VERSION 5           }
133     { CU_FUNC_ATTRIBUTE_BINARY_VERSION 6        }
134     CU_FUNC_ATTRIBUTE_MAX ;
135
136 ENUM: CUfunc_cache
137     { CU_FUNC_CACHE_PREFER_NONE   0x00 }
138     { CU_FUNC_CACHE_PREFER_SHARED 0x01 }
139     { CU_FUNC_CACHE_PREFER_L1     0x02 } ;
140
141 ENUM: CUmemorytype
142     { CU_MEMORYTYPE_HOST   0x01 }
143     { CU_MEMORYTYPE_DEVICE 0x02 }
144     { CU_MEMORYTYPE_ARRAY  0x03 } ;
145
146 ENUM: CUcomputemode
147     { CU_COMPUTEMODE_DEFAULT    0 }
148     { CU_COMPUTEMODE_EXCLUSIVE  1 }
149     { CU_COMPUTEMODE_PROHIBITED 2 } ;
150
151 ENUM: CUjit_option
152     { CU_JIT_MAX_REGISTERS 0 }
153     CU_JIT_THREADS_PER_BLOCK
154     CU_JIT_WALL_TIME
155     CU_JIT_INFO_LOG_BUFFER
156     CU_JIT_INFO_LOG_BUFFER_SIZE_BYTES
157     CU_JIT_ERROR_LOG_BUFFER
158     CU_JIT_ERROR_LOG_BUFFER_SIZE_BYTES
159     CU_JIT_OPTIMIZATION_LEVEL
160     CU_JIT_TARGET_FROM_CUCONTEXT
161     CU_JIT_TARGET
162     CU_JIT_FALLBACK_STRATEGY ;
163
164 ENUM: CUjit_target
165     { CU_TARGET_COMPUTE_10 0 }
166     CU_TARGET_COMPUTE_11
167     CU_TARGET_COMPUTE_12
168     CU_TARGET_COMPUTE_13
169     CU_TARGET_COMPUTE_20 ;
170
171 ENUM: CUjit_fallback
172     { CU_PREFER_PTX 0 }
173     CU_PREFER_BINARY ;
174
175 ENUM: CUgraphicsRegisterFlags
176     { CU_GRAPHICS_REGISTER_FLAGS_NONE 0 } ;
177
178 ENUM: CUgraphicsMapResourceFlags
179     { CU_GRAPHICS_MAP_RESOURCE_FLAGS_NONE          0x00 }
180     { CU_GRAPHICS_MAP_RESOURCE_FLAGS_READ_ONLY     0x01 }
181     { CU_GRAPHICS_MAP_RESOURCE_FLAGS_WRITE_DISCARD 0x02 } ;
182
183 ENUM: CUarray_cubemap_face
184     { CU_CUBEMAP_FACE_POSITIVE_X  0x00 }
185     { CU_CUBEMAP_FACE_NEGATIVE_X  0x01 }
186     { CU_CUBEMAP_FACE_POSITIVE_Y  0x02 }
187     { CU_CUBEMAP_FACE_NEGATIVE_Y  0x03 }
188     { CU_CUBEMAP_FACE_POSITIVE_Z  0x04 }
189     { CU_CUBEMAP_FACE_NEGATIVE_Z  0x05 } ;
190
191 ENUM: CUresult
192     { CUDA_SUCCESS                    0 }
193     { CUDA_ERROR_INVALID_VALUE        1 }
194     { CUDA_ERROR_OUT_OF_MEMORY        2 }
195     { CUDA_ERROR_NOT_INITIALIZED      3 }
196     { CUDA_ERROR_DEINITIALIZED        4 }
197
198     { CUDA_ERROR_NO_DEVICE            100 }
199     { CUDA_ERROR_INVALID_DEVICE       101 }
200
201     { CUDA_ERROR_INVALID_IMAGE        200 }
202     { CUDA_ERROR_INVALID_CONTEXT      201 }
203     { CUDA_ERROR_CONTEXT_ALREADY_CURRENT 202 }
204     { CUDA_ERROR_MAP_FAILED           205 }
205     { CUDA_ERROR_UNMAP_FAILED         206 }
206     { CUDA_ERROR_ARRAY_IS_MAPPED      207 }
207     { CUDA_ERROR_ALREADY_MAPPED       208 }
208     { CUDA_ERROR_NO_BINARY_FOR_GPU    209 }
209     { CUDA_ERROR_ALREADY_ACQUIRED     210 }
210     { CUDA_ERROR_NOT_MAPPED           211 }
211     { CUDA_ERROR_NOT_MAPPED_AS_ARRAY  212 }
212     { CUDA_ERROR_NOT_MAPPED_AS_POINTER 213 }
213     { CUDA_ERROR_ECC_UNCORRECTABLE    214 }
214
215     { CUDA_ERROR_INVALID_SOURCE       300 }
216     { CUDA_ERROR_FILE_NOT_FOUND       301 }
217
218     { CUDA_ERROR_INVALID_HANDLE       400 }
219
220     { CUDA_ERROR_NOT_FOUND            500 }
221
222     { CUDA_ERROR_NOT_READY            600 }
223
224     { CUDA_ERROR_LAUNCH_FAILED        700 }
225     { CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES 701 }
226     { CUDA_ERROR_LAUNCH_TIMEOUT       702 }
227     { CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING 703 }
228
229     { CUDA_ERROR_POINTER_IS_64BIT     800 }
230     { CUDA_ERROR_SIZE_IS_64BIT        801 }
231
232     { CUDA_ERROR_UNKNOWN              999 } ;
233
234 CONSTANT: CU_MEMHOSTALLOC_PORTABLE        0x01
235 CONSTANT: CU_MEMHOSTALLOC_DEVICEMAP       0x02
236 CONSTANT: CU_MEMHOSTALLOC_WRITECOMBINED   0x04
237
238 STRUCT: CUDA_MEMCPY2D
239     { srcXInBytes uint }
240     { srcY        uint }
241     { srcMemoryType CUmemorytype }
242     { srcHost void* }
243     { srcDevice CUdeviceptr }
244     { srcArray CUarray }
245     { srcPitch uint }
246     { dstXInBytes uint }
247     { dstY uint }
248     { dstMemoryType CUmemorytype }
249     { dstHost void* }
250     { dstDevice CUdeviceptr }
251     { dstArray CUarray }
252     { dstPitch uint }
253     { WidthInBytes uint }
254     { Height uint } ;
255
256 STRUCT: CUDA_MEMCPY3D
257     { srcXInBytes uint }
258     { srcY        uint }
259     { srcZ        uint }
260     { srcLOD      uint }
261     { srcMemoryType CUmemorytype }
262     { srcHost void* }
263     { srcDevice CUdeviceptr }
264     { srcArray CUarray }
265     { reserved0 void* }
266     { srcPitch uint }
267     { srcHeight uint }
268     { dstXInBytes uint }
269     { dstY uint }
270     { dstZ uint }
271     { dstLOD uint }
272     { dstMemoryType CUmemorytype }
273     { dstHost void* }
274     { dstDevice CUdeviceptr }
275     { dstArray CUarray }
276     { reserved1 void* }
277     { dstPitch uint }
278     { dstHeight uint }
279     { WidthInBytes uint }
280     { Height uint }
281     { Depth uint } ;
282
283 STRUCT: CUDA_ARRAY_DESCRIPTOR
284     { Width uint }
285     { Height uint }
286     { Format CUarray_format }
287     { NumChannels uint } ;
288
289 STRUCT: CUDA_ARRAY3D_DESCRIPTOR
290     { Width uint }
291     { Height uint }
292     { Depth uint }
293     { Format CUarray_format }
294     { NumChannels uint }
295     { Flags uint } ;
296
297 CONSTANT: CUDA_ARRAY3D_2DARRAY    0x01
298 CONSTANT: CU_TRSA_OVERRIDE_FORMAT 0x01
299 CONSTANT: CU_TRSF_READ_AS_INTEGER         0x01
300 CONSTANT: CU_TRSF_NORMALIZED_COORDINATES  0x02
301 CONSTANT: CU_PARAM_TR_DEFAULT -1
302
303 FUNCTION: CUresult cuInit ( uint Flags )
304
305 FUNCTION: CUresult cuDriverGetVersion ( int* driverVersion )
306
307 FUNCTION: CUresult cuDeviceGet ( CUdevice* device, int ordinal )
308 FUNCTION: CUresult cuDeviceGetCount ( int* count )
309 FUNCTION: CUresult cuDeviceGetName ( char* name, int len, CUdevice dev )
310 FUNCTION: CUresult cuDeviceComputeCapability ( int* major, int* minor, CUdevice dev )
311 FUNCTION: CUresult cuDeviceTotalMem ( uint* bytes, CUdevice dev )
312 FUNCTION: CUresult cuDeviceTotalMem_v2 ( ulonglong* bytes, CUdevice dev )
313 FUNCTION: CUresult cuDeviceGetProperties ( CUdevprop* prop, CUdevice dev )
314 FUNCTION: CUresult cuDeviceGetAttribute ( int* pi, CUdevice_attribute attrib, CUdevice dev )
315
316 FUNCTION: CUresult cuCtxCreate ( CUcontext* pctx, uint flags, CUdevice dev )
317 FUNCTION: CUresult cuCtxDestroy ( CUcontext ctx )
318 FUNCTION: CUresult cuCtxAttach ( CUcontext* pctx, uint flags )
319 FUNCTION: CUresult cuCtxDetach ( CUcontext ctx )
320 FUNCTION: CUresult cuCtxPushCurrent ( CUcontext ctx )
321 FUNCTION: CUresult cuCtxPopCurrent ( CUcontext* pctx )
322 FUNCTION: CUresult cuCtxGetDevice ( CUdevice* device )
323 FUNCTION: CUresult cuCtxSynchronize ( )
324
325 FUNCTION: CUresult cuModuleLoad ( CUmodule* module, c-string fname )
326 FUNCTION: CUresult cuModuleLoadData ( CUmodule* module, void* image )
327 FUNCTION: CUresult cuModuleLoadDataEx ( CUmodule* module, void* image, uint numOptions, CUjit_option* options, void** optionValues )
328 FUNCTION: CUresult cuModuleLoadFatBinary ( CUmodule* module, void* fatCubin )
329 FUNCTION: CUresult cuModuleUnload ( CUmodule hmod )
330 FUNCTION: CUresult cuModuleGetFunction ( CUfunction* hfunc, CUmodule hmod, c-string name )
331 FUNCTION: CUresult cuModuleGetGlobal ( CUdeviceptr* dptr, uint* bytes, CUmodule hmod, char* name )
332 FUNCTION: CUresult cuModuleGetTexRef ( CUtexref* pTexRef, CUmodule hmod, char* name )
333
334 FUNCTION: CUresult cuMemGetInfo ( uint* free, uint* total )
335
336 FUNCTION: CUresult cuMemAlloc ( CUdeviceptr* dptr, uint bytesize )
337 FUNCTION: CUresult cuMemAllocPitch ( CUdeviceptr* dptr,
338                                       uint* pPitch,
339                                       uint WidthInBytes,
340                                       uint Height,
341                                       uint ElementSizeBytes
342                                      )
343 FUNCTION: CUresult cuMemFree ( CUdeviceptr dptr )
344 FUNCTION: CUresult cuMemGetAddressRange ( CUdeviceptr* pbase, uint* psize, CUdeviceptr dptr )
345
346 FUNCTION: CUresult cuMemAllocHost ( void** pp, uint bytesize )
347 FUNCTION: CUresult cuMemFreeHost ( void* p )
348
349 FUNCTION: CUresult cuMemHostAlloc ( void** pp, size_t bytesize, uint Flags )
350
351 FUNCTION: CUresult cuMemHostGetDevicePointer ( CUdeviceptr* pdptr, void* p, uint Flags )
352 FUNCTION: CUresult cuMemHostGetFlags ( uint* pFlags, void* p )
353
354 FUNCTION: CUresult  cuMemcpyHtoD ( CUdeviceptr dstDevice, void* srcHost, uint ByteCount )
355 FUNCTION: CUresult  cuMemcpyDtoH ( void* dstHost, CUdeviceptr srcDevice, uint ByteCount )
356
357 FUNCTION: CUresult  cuMemcpyDtoD ( CUdeviceptr dstDevice, CUdeviceptr srcDevice, uint ByteCount )
358
359 FUNCTION: CUresult  cuMemcpyDtoA ( CUarray dstArray, uint dstIndex, CUdeviceptr srcDevice, uint ByteCount )
360 FUNCTION: CUresult  cuMemcpyAtoD ( CUdeviceptr dstDevice, CUarray hSrc, uint SrcIndex, uint ByteCount )
361
362 FUNCTION: CUresult  cuMemcpyHtoA ( CUarray dstArray, uint dstIndex, void* pSrc, uint ByteCount )
363 FUNCTION: CUresult  cuMemcpyAtoH ( void* dstHost, CUarray srcArray, uint srcIndex, uint ByteCount )
364
365 FUNCTION: CUresult  cuMemcpyAtoA ( CUarray dstArray, uint dstIndex, CUarray srcArray, uint srcIndex, uint ByteCount )
366
367 FUNCTION: CUresult  cuMemcpy2D ( CUDA_MEMCPY2D* pCopy )
368 FUNCTION: CUresult  cuMemcpy2DUnaligned ( CUDA_MEMCPY2D* pCopy )
369
370 FUNCTION: CUresult  cuMemcpy3D ( CUDA_MEMCPY3D* pCopy )
371
372 FUNCTION: CUresult  cuMemcpyHtoDAsync ( CUdeviceptr dstDevice,
373             void* srcHost, uint ByteCount, CUstream hStream )
374 FUNCTION: CUresult  cuMemcpyDtoHAsync ( void* dstHost,
375             CUdeviceptr srcDevice, uint ByteCount, CUstream hStream )
376
377 FUNCTION: CUresult cuMemcpyDtoDAsync ( CUdeviceptr dstDevice,
378             CUdeviceptr srcDevice, uint ByteCount, CUstream hStream )
379
380 FUNCTION: CUresult  cuMemcpyHtoAAsync ( CUarray dstArray, uint dstIndex,
381             void* pSrc, uint ByteCount, CUstream hStream )
382 FUNCTION: CUresult  cuMemcpyAtoHAsync ( void* dstHost, CUarray srcArray, uint srcIndex,
383             uint ByteCount, CUstream hStream )
384
385 FUNCTION: CUresult  cuMemcpy2DAsync ( CUDA_MEMCPY2D* pCopy, CUstream hStream )
386 FUNCTION: CUresult  cuMemcpy3DAsync ( CUDA_MEMCPY3D* pCopy, CUstream hStream )
387
388 FUNCTION: CUresult  cuMemsetD8 ( CUdeviceptr dstDevice, uchar uc, uint N )
389 FUNCTION: CUresult  cuMemsetD16 ( CUdeviceptr dstDevice, ushort us, uint N )
390 FUNCTION: CUresult  cuMemsetD32 ( CUdeviceptr dstDevice, uint ui, uint N )
391
392 FUNCTION: CUresult  cuMemsetD2D8 ( CUdeviceptr dstDevice, uint dstPitch, uchar uc, uint Width, uint Height )
393 FUNCTION: CUresult  cuMemsetD2D16 ( CUdeviceptr dstDevice, uint dstPitch, ushort us, uint Width, uint Height )
394 FUNCTION: CUresult  cuMemsetD2D32 ( CUdeviceptr dstDevice, uint dstPitch, uint ui, uint Width, uint Height )
395
396 FUNCTION: CUresult cuFuncSetBlockShape ( CUfunction hfunc, int x, int y, int z )
397 FUNCTION: CUresult cuFuncSetSharedSize ( CUfunction hfunc, uint bytes )
398 FUNCTION: CUresult cuFuncGetAttribute ( int* pi, CUfunction_attribute attrib, CUfunction hfunc )
399 FUNCTION: CUresult cuFuncSetCacheConfig ( CUfunction hfunc, CUfunc_cache config )
400
401 FUNCTION: CUresult  cuArrayCreate ( CUarray* pHandle, CUDA_ARRAY_DESCRIPTOR* pAllocateArray )
402 FUNCTION: CUresult  cuArrayGetDescriptor ( CUDA_ARRAY_DESCRIPTOR* pArrayDescriptor, CUarray hArray )
403 FUNCTION: CUresult  cuArrayDestroy ( CUarray hArray )
404
405 FUNCTION: CUresult  cuArray3DCreate ( CUarray* pHandle, CUDA_ARRAY3D_DESCRIPTOR* pAllocateArray )
406 FUNCTION: CUresult  cuArray3DGetDescriptor ( CUDA_ARRAY3D_DESCRIPTOR* pArrayDescriptor, CUarray hArray )
407
408 FUNCTION: CUresult  cuTexRefCreate ( CUtexref* pTexRef )
409 FUNCTION: CUresult  cuTexRefDestroy ( CUtexref hTexRef )
410
411 FUNCTION: CUresult  cuTexRefSetArray ( CUtexref hTexRef, CUarray hArray, uint Flags )
412 FUNCTION: CUresult  cuTexRefSetAddress ( uint* ByteOffset, CUtexref hTexRef, CUdeviceptr dptr, uint bytes )
413 FUNCTION: CUresult  cuTexRefSetAddress2D ( CUtexref hTexRef, CUDA_ARRAY_DESCRIPTOR* desc, CUdeviceptr dptr, uint Pitch )
414 FUNCTION: CUresult  cuTexRefSetFormat ( CUtexref hTexRef, CUarray_format fmt, int NumPackedComponents )
415 FUNCTION: CUresult  cuTexRefSetAddressMode ( CUtexref hTexRef, int dim, CUaddress_mode am )
416 FUNCTION: CUresult  cuTexRefSetFilterMode ( CUtexref hTexRef, CUfilter_mode fm )
417 FUNCTION: CUresult  cuTexRefSetFlags ( CUtexref hTexRef, uint Flags )
418
419 FUNCTION: CUresult  cuTexRefGetAddress ( CUdeviceptr* pdptr, CUtexref hTexRef )
420 FUNCTION: CUresult  cuTexRefGetArray ( CUarray* phArray, CUtexref hTexRef )
421 FUNCTION: CUresult  cuTexRefGetAddressMode ( CUaddress_mode* pam, CUtexref hTexRef, int dim )
422 FUNCTION: CUresult  cuTexRefGetFilterMode ( CUfilter_mode* pfm, CUtexref hTexRef )
423 FUNCTION: CUresult  cuTexRefGetFormat ( CUarray_format* pFormat, int* pNumChannels, CUtexref hTexRef )
424 FUNCTION: CUresult  cuTexRefGetFlags ( uint* pFlags, CUtexref hTexRef )
425
426 FUNCTION: CUresult  cuParamSetSize ( CUfunction hfunc, uint numbytes )
427 FUNCTION: CUresult  cuParamSeti    ( CUfunction hfunc, int offset, uint value )
428 FUNCTION: CUresult  cuParamSetf    ( CUfunction hfunc, int offset, float value )
429 FUNCTION: CUresult  cuParamSetv    ( CUfunction hfunc, int offset, void* ptr, uint numbytes )
430 FUNCTION: CUresult  cuParamSetTexRef ( CUfunction hfunc, int texunit, CUtexref hTexRef )
431
432 FUNCTION: CUresult cuLaunch ( CUfunction f )
433 FUNCTION: CUresult cuLaunchGrid ( CUfunction f, int grid_width, int grid_height )
434 FUNCTION: CUresult cuLaunchGridAsync ( CUfunction f, int grid_width, int grid_height, CUstream hStream )
435
436 FUNCTION: CUresult cuEventCreate ( CUevent* phEvent, uint Flags )
437 FUNCTION: CUresult cuEventRecord ( CUevent hEvent, CUstream hStream )
438 FUNCTION: CUresult cuEventQuery ( CUevent hEvent )
439 FUNCTION: CUresult cuEventSynchronize ( CUevent hEvent )
440 FUNCTION: CUresult cuEventDestroy ( CUevent hEvent )
441 FUNCTION: CUresult cuEventElapsedTime ( float* pMilliseconds, CUevent hStart, CUevent hEnd )
442
443 FUNCTION: CUresult  cuStreamCreate ( CUstream* phStream, uint Flags )
444 FUNCTION: CUresult  cuStreamQuery ( CUstream hStream )
445 FUNCTION: CUresult  cuStreamSynchronize ( CUstream hStream )
446 FUNCTION: CUresult  cuStreamDestroy ( CUstream hStream )
447
448 FUNCTION: CUresult cuGraphicsUnregisterResource ( CUgraphicsResource resource )
449 FUNCTION: CUresult cuGraphicsSubResourceGetMappedArray ( CUarray* pArray, CUgraphicsResource resource, uint arrayIndex, uint mipLevel )
450 FUNCTION: CUresult cuGraphicsResourceGetMappedPointer ( CUdeviceptr* pDevPtr, uint* pSize, CUgraphicsResource resource )
451 FUNCTION: CUresult cuGraphicsResourceSetMapFlags ( CUgraphicsResource resource, uint flags )
452 FUNCTION: CUresult cuGraphicsMapResources ( uint count, CUgraphicsResource* resources, CUstream hStream )
453 FUNCTION: CUresult cuGraphicsUnmapResources ( uint count, CUgraphicsResource* resources, CUstream hStream )
454
455 FUNCTION: CUresult cuGetExportTable ( void** ppExportTable, CUuuid* pExportTableId )