numba-cuda 0.0.1__py3-none-any.whl → 0.0.12__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. _numba_cuda_redirector.pth +1 -0
  2. _numba_cuda_redirector.py +74 -0
  3. numba_cuda/VERSION +1 -0
  4. numba_cuda/__init__.py +5 -0
  5. numba_cuda/_version.py +19 -0
  6. numba_cuda/numba/cuda/__init__.py +22 -0
  7. numba_cuda/numba/cuda/api.py +526 -0
  8. numba_cuda/numba/cuda/api_util.py +30 -0
  9. numba_cuda/numba/cuda/args.py +77 -0
  10. numba_cuda/numba/cuda/cg.py +62 -0
  11. numba_cuda/numba/cuda/codegen.py +378 -0
  12. numba_cuda/numba/cuda/compiler.py +422 -0
  13. numba_cuda/numba/cuda/cpp_function_wrappers.cu +47 -0
  14. numba_cuda/numba/cuda/cuda_fp16.h +3631 -0
  15. numba_cuda/numba/cuda/cuda_fp16.hpp +2465 -0
  16. numba_cuda/numba/cuda/cuda_paths.py +258 -0
  17. numba_cuda/numba/cuda/cudadecl.py +806 -0
  18. numba_cuda/numba/cuda/cudadrv/__init__.py +9 -0
  19. numba_cuda/numba/cuda/cudadrv/devicearray.py +904 -0
  20. numba_cuda/numba/cuda/cudadrv/devices.py +248 -0
  21. numba_cuda/numba/cuda/cudadrv/driver.py +3201 -0
  22. numba_cuda/numba/cuda/cudadrv/drvapi.py +398 -0
  23. numba_cuda/numba/cuda/cudadrv/dummyarray.py +452 -0
  24. numba_cuda/numba/cuda/cudadrv/enums.py +607 -0
  25. numba_cuda/numba/cuda/cudadrv/error.py +36 -0
  26. numba_cuda/numba/cuda/cudadrv/libs.py +176 -0
  27. numba_cuda/numba/cuda/cudadrv/ndarray.py +20 -0
  28. numba_cuda/numba/cuda/cudadrv/nvrtc.py +260 -0
  29. numba_cuda/numba/cuda/cudadrv/nvvm.py +707 -0
  30. numba_cuda/numba/cuda/cudadrv/rtapi.py +10 -0
  31. numba_cuda/numba/cuda/cudadrv/runtime.py +142 -0
  32. numba_cuda/numba/cuda/cudaimpl.py +1055 -0
  33. numba_cuda/numba/cuda/cudamath.py +140 -0
  34. numba_cuda/numba/cuda/decorators.py +189 -0
  35. numba_cuda/numba/cuda/descriptor.py +33 -0
  36. numba_cuda/numba/cuda/device_init.py +89 -0
  37. numba_cuda/numba/cuda/deviceufunc.py +908 -0
  38. numba_cuda/numba/cuda/dispatcher.py +1057 -0
  39. numba_cuda/numba/cuda/errors.py +59 -0
  40. numba_cuda/numba/cuda/extending.py +7 -0
  41. numba_cuda/numba/cuda/initialize.py +13 -0
  42. numba_cuda/numba/cuda/intrinsic_wrapper.py +77 -0
  43. numba_cuda/numba/cuda/intrinsics.py +198 -0
  44. numba_cuda/numba/cuda/kernels/__init__.py +0 -0
  45. numba_cuda/numba/cuda/kernels/reduction.py +262 -0
  46. numba_cuda/numba/cuda/kernels/transpose.py +65 -0
  47. numba_cuda/numba/cuda/libdevice.py +3382 -0
  48. numba_cuda/numba/cuda/libdevicedecl.py +17 -0
  49. numba_cuda/numba/cuda/libdevicefuncs.py +1057 -0
  50. numba_cuda/numba/cuda/libdeviceimpl.py +83 -0
  51. numba_cuda/numba/cuda/mathimpl.py +448 -0
  52. numba_cuda/numba/cuda/models.py +48 -0
  53. numba_cuda/numba/cuda/nvvmutils.py +235 -0
  54. numba_cuda/numba/cuda/printimpl.py +86 -0
  55. numba_cuda/numba/cuda/random.py +292 -0
  56. numba_cuda/numba/cuda/simulator/__init__.py +38 -0
  57. numba_cuda/numba/cuda/simulator/api.py +110 -0
  58. numba_cuda/numba/cuda/simulator/compiler.py +9 -0
  59. numba_cuda/numba/cuda/simulator/cudadrv/__init__.py +2 -0
  60. numba_cuda/numba/cuda/simulator/cudadrv/devicearray.py +432 -0
  61. numba_cuda/numba/cuda/simulator/cudadrv/devices.py +117 -0
  62. numba_cuda/numba/cuda/simulator/cudadrv/driver.py +62 -0
  63. numba_cuda/numba/cuda/simulator/cudadrv/drvapi.py +4 -0
  64. numba_cuda/numba/cuda/simulator/cudadrv/dummyarray.py +4 -0
  65. numba_cuda/numba/cuda/simulator/cudadrv/error.py +6 -0
  66. numba_cuda/numba/cuda/simulator/cudadrv/libs.py +2 -0
  67. numba_cuda/numba/cuda/simulator/cudadrv/nvvm.py +29 -0
  68. numba_cuda/numba/cuda/simulator/cudadrv/runtime.py +19 -0
  69. numba_cuda/numba/cuda/simulator/kernel.py +308 -0
  70. numba_cuda/numba/cuda/simulator/kernelapi.py +495 -0
  71. numba_cuda/numba/cuda/simulator/reduction.py +15 -0
  72. numba_cuda/numba/cuda/simulator/vector_types.py +58 -0
  73. numba_cuda/numba/cuda/simulator_init.py +17 -0
  74. numba_cuda/numba/cuda/stubs.py +902 -0
  75. numba_cuda/numba/cuda/target.py +440 -0
  76. numba_cuda/numba/cuda/testing.py +202 -0
  77. numba_cuda/numba/cuda/tests/__init__.py +58 -0
  78. numba_cuda/numba/cuda/tests/cudadrv/__init__.py +8 -0
  79. numba_cuda/numba/cuda/tests/cudadrv/test_array_attr.py +145 -0
  80. numba_cuda/numba/cuda/tests/cudadrv/test_context_stack.py +145 -0
  81. numba_cuda/numba/cuda/tests/cudadrv/test_cuda_array_slicing.py +375 -0
  82. numba_cuda/numba/cuda/tests/cudadrv/test_cuda_auto_context.py +21 -0
  83. numba_cuda/numba/cuda/tests/cudadrv/test_cuda_devicerecord.py +179 -0
  84. numba_cuda/numba/cuda/tests/cudadrv/test_cuda_driver.py +235 -0
  85. numba_cuda/numba/cuda/tests/cudadrv/test_cuda_libraries.py +22 -0
  86. numba_cuda/numba/cuda/tests/cudadrv/test_cuda_memory.py +193 -0
  87. numba_cuda/numba/cuda/tests/cudadrv/test_cuda_ndarray.py +547 -0
  88. numba_cuda/numba/cuda/tests/cudadrv/test_deallocations.py +249 -0
  89. numba_cuda/numba/cuda/tests/cudadrv/test_detect.py +81 -0
  90. numba_cuda/numba/cuda/tests/cudadrv/test_emm_plugins.py +192 -0
  91. numba_cuda/numba/cuda/tests/cudadrv/test_events.py +38 -0
  92. numba_cuda/numba/cuda/tests/cudadrv/test_host_alloc.py +65 -0
  93. numba_cuda/numba/cuda/tests/cudadrv/test_init.py +139 -0
  94. numba_cuda/numba/cuda/tests/cudadrv/test_inline_ptx.py +37 -0
  95. numba_cuda/numba/cuda/tests/cudadrv/test_is_fp16.py +12 -0
  96. numba_cuda/numba/cuda/tests/cudadrv/test_linker.py +317 -0
  97. numba_cuda/numba/cuda/tests/cudadrv/test_managed_alloc.py +127 -0
  98. numba_cuda/numba/cuda/tests/cudadrv/test_mvc.py +54 -0
  99. numba_cuda/numba/cuda/tests/cudadrv/test_nvvm_driver.py +199 -0
  100. numba_cuda/numba/cuda/tests/cudadrv/test_pinned.py +37 -0
  101. numba_cuda/numba/cuda/tests/cudadrv/test_profiler.py +20 -0
  102. numba_cuda/numba/cuda/tests/cudadrv/test_ptds.py +149 -0
  103. numba_cuda/numba/cuda/tests/cudadrv/test_reset_device.py +36 -0
  104. numba_cuda/numba/cuda/tests/cudadrv/test_runtime.py +85 -0
  105. numba_cuda/numba/cuda/tests/cudadrv/test_select_device.py +41 -0
  106. numba_cuda/numba/cuda/tests/cudadrv/test_streams.py +122 -0
  107. numba_cuda/numba/cuda/tests/cudapy/__init__.py +8 -0
  108. numba_cuda/numba/cuda/tests/cudapy/cache_usecases.py +234 -0
  109. numba_cuda/numba/cuda/tests/cudapy/cache_with_cpu_usecases.py +41 -0
  110. numba_cuda/numba/cuda/tests/cudapy/extensions_usecases.py +58 -0
  111. numba_cuda/numba/cuda/tests/cudapy/jitlink.ptx +30 -0
  112. numba_cuda/numba/cuda/tests/cudapy/recursion_usecases.py +100 -0
  113. numba_cuda/numba/cuda/tests/cudapy/test_alignment.py +42 -0
  114. numba_cuda/numba/cuda/tests/cudapy/test_array.py +260 -0
  115. numba_cuda/numba/cuda/tests/cudapy/test_array_args.py +201 -0
  116. numba_cuda/numba/cuda/tests/cudapy/test_array_methods.py +35 -0
  117. numba_cuda/numba/cuda/tests/cudapy/test_atomics.py +1620 -0
  118. numba_cuda/numba/cuda/tests/cudapy/test_blackscholes.py +120 -0
  119. numba_cuda/numba/cuda/tests/cudapy/test_boolean.py +24 -0
  120. numba_cuda/numba/cuda/tests/cudapy/test_caching.py +545 -0
  121. numba_cuda/numba/cuda/tests/cudapy/test_casting.py +257 -0
  122. numba_cuda/numba/cuda/tests/cudapy/test_cffi.py +33 -0
  123. numba_cuda/numba/cuda/tests/cudapy/test_compiler.py +276 -0
  124. numba_cuda/numba/cuda/tests/cudapy/test_complex.py +296 -0
  125. numba_cuda/numba/cuda/tests/cudapy/test_complex_kernel.py +20 -0
  126. numba_cuda/numba/cuda/tests/cudapy/test_const_string.py +129 -0
  127. numba_cuda/numba/cuda/tests/cudapy/test_constmem.py +176 -0
  128. numba_cuda/numba/cuda/tests/cudapy/test_cooperative_groups.py +147 -0
  129. numba_cuda/numba/cuda/tests/cudapy/test_cuda_array_interface.py +435 -0
  130. numba_cuda/numba/cuda/tests/cudapy/test_cuda_jit_no_types.py +90 -0
  131. numba_cuda/numba/cuda/tests/cudapy/test_datetime.py +94 -0
  132. numba_cuda/numba/cuda/tests/cudapy/test_debug.py +101 -0
  133. numba_cuda/numba/cuda/tests/cudapy/test_debuginfo.py +221 -0
  134. numba_cuda/numba/cuda/tests/cudapy/test_device_func.py +222 -0
  135. numba_cuda/numba/cuda/tests/cudapy/test_dispatcher.py +700 -0
  136. numba_cuda/numba/cuda/tests/cudapy/test_enums.py +121 -0
  137. numba_cuda/numba/cuda/tests/cudapy/test_errors.py +79 -0
  138. numba_cuda/numba/cuda/tests/cudapy/test_exception.py +174 -0
  139. numba_cuda/numba/cuda/tests/cudapy/test_extending.py +155 -0
  140. numba_cuda/numba/cuda/tests/cudapy/test_fastmath.py +244 -0
  141. numba_cuda/numba/cuda/tests/cudapy/test_forall.py +52 -0
  142. numba_cuda/numba/cuda/tests/cudapy/test_freevar.py +29 -0
  143. numba_cuda/numba/cuda/tests/cudapy/test_frexp_ldexp.py +66 -0
  144. numba_cuda/numba/cuda/tests/cudapy/test_globals.py +60 -0
  145. numba_cuda/numba/cuda/tests/cudapy/test_gufunc.py +456 -0
  146. numba_cuda/numba/cuda/tests/cudapy/test_gufunc_scalar.py +159 -0
  147. numba_cuda/numba/cuda/tests/cudapy/test_gufunc_scheduling.py +95 -0
  148. numba_cuda/numba/cuda/tests/cudapy/test_idiv.py +37 -0
  149. numba_cuda/numba/cuda/tests/cudapy/test_inspect.py +165 -0
  150. numba_cuda/numba/cuda/tests/cudapy/test_intrinsics.py +1106 -0
  151. numba_cuda/numba/cuda/tests/cudapy/test_ipc.py +318 -0
  152. numba_cuda/numba/cuda/tests/cudapy/test_iterators.py +99 -0
  153. numba_cuda/numba/cuda/tests/cudapy/test_lang.py +64 -0
  154. numba_cuda/numba/cuda/tests/cudapy/test_laplace.py +119 -0
  155. numba_cuda/numba/cuda/tests/cudapy/test_libdevice.py +187 -0
  156. numba_cuda/numba/cuda/tests/cudapy/test_lineinfo.py +199 -0
  157. numba_cuda/numba/cuda/tests/cudapy/test_localmem.py +164 -0
  158. numba_cuda/numba/cuda/tests/cudapy/test_mandel.py +37 -0
  159. numba_cuda/numba/cuda/tests/cudapy/test_math.py +786 -0
  160. numba_cuda/numba/cuda/tests/cudapy/test_matmul.py +74 -0
  161. numba_cuda/numba/cuda/tests/cudapy/test_minmax.py +113 -0
  162. numba_cuda/numba/cuda/tests/cudapy/test_montecarlo.py +22 -0
  163. numba_cuda/numba/cuda/tests/cudapy/test_multigpu.py +140 -0
  164. numba_cuda/numba/cuda/tests/cudapy/test_multiprocessing.py +46 -0
  165. numba_cuda/numba/cuda/tests/cudapy/test_multithreads.py +101 -0
  166. numba_cuda/numba/cuda/tests/cudapy/test_nondet.py +49 -0
  167. numba_cuda/numba/cuda/tests/cudapy/test_operator.py +401 -0
  168. numba_cuda/numba/cuda/tests/cudapy/test_optimization.py +86 -0
  169. numba_cuda/numba/cuda/tests/cudapy/test_overload.py +335 -0
  170. numba_cuda/numba/cuda/tests/cudapy/test_powi.py +124 -0
  171. numba_cuda/numba/cuda/tests/cudapy/test_print.py +128 -0
  172. numba_cuda/numba/cuda/tests/cudapy/test_py2_div_issue.py +33 -0
  173. numba_cuda/numba/cuda/tests/cudapy/test_random.py +104 -0
  174. numba_cuda/numba/cuda/tests/cudapy/test_record_dtype.py +610 -0
  175. numba_cuda/numba/cuda/tests/cudapy/test_recursion.py +125 -0
  176. numba_cuda/numba/cuda/tests/cudapy/test_reduction.py +76 -0
  177. numba_cuda/numba/cuda/tests/cudapy/test_retrieve_autoconverted_arrays.py +83 -0
  178. numba_cuda/numba/cuda/tests/cudapy/test_serialize.py +85 -0
  179. numba_cuda/numba/cuda/tests/cudapy/test_slicing.py +37 -0
  180. numba_cuda/numba/cuda/tests/cudapy/test_sm.py +444 -0
  181. numba_cuda/numba/cuda/tests/cudapy/test_sm_creation.py +205 -0
  182. numba_cuda/numba/cuda/tests/cudapy/test_sync.py +271 -0
  183. numba_cuda/numba/cuda/tests/cudapy/test_transpose.py +80 -0
  184. numba_cuda/numba/cuda/tests/cudapy/test_ufuncs.py +277 -0
  185. numba_cuda/numba/cuda/tests/cudapy/test_userexc.py +47 -0
  186. numba_cuda/numba/cuda/tests/cudapy/test_vector_type.py +307 -0
  187. numba_cuda/numba/cuda/tests/cudapy/test_vectorize.py +283 -0
  188. numba_cuda/numba/cuda/tests/cudapy/test_vectorize_complex.py +20 -0
  189. numba_cuda/numba/cuda/tests/cudapy/test_vectorize_decor.py +69 -0
  190. numba_cuda/numba/cuda/tests/cudapy/test_vectorize_device.py +36 -0
  191. numba_cuda/numba/cuda/tests/cudapy/test_vectorize_scalar_arg.py +37 -0
  192. numba_cuda/numba/cuda/tests/cudapy/test_warning.py +139 -0
  193. numba_cuda/numba/cuda/tests/cudapy/test_warp_ops.py +276 -0
  194. numba_cuda/numba/cuda/tests/cudasim/__init__.py +6 -0
  195. numba_cuda/numba/cuda/tests/cudasim/support.py +6 -0
  196. numba_cuda/numba/cuda/tests/cudasim/test_cudasim_issues.py +102 -0
  197. numba_cuda/numba/cuda/tests/data/__init__.py +0 -0
  198. numba_cuda/numba/cuda/tests/data/cuda_include.cu +5 -0
  199. numba_cuda/numba/cuda/tests/data/error.cu +7 -0
  200. numba_cuda/numba/cuda/tests/data/jitlink.cu +23 -0
  201. numba_cuda/numba/cuda/tests/data/jitlink.ptx +51 -0
  202. numba_cuda/numba/cuda/tests/data/warn.cu +7 -0
  203. numba_cuda/numba/cuda/tests/doc_examples/__init__.py +6 -0
  204. numba_cuda/numba/cuda/tests/doc_examples/ffi/__init__.py +0 -0
  205. numba_cuda/numba/cuda/tests/doc_examples/ffi/functions.cu +49 -0
  206. numba_cuda/numba/cuda/tests/doc_examples/test_cg.py +77 -0
  207. numba_cuda/numba/cuda/tests/doc_examples/test_cpu_gpu_compat.py +76 -0
  208. numba_cuda/numba/cuda/tests/doc_examples/test_ffi.py +82 -0
  209. numba_cuda/numba/cuda/tests/doc_examples/test_laplace.py +155 -0
  210. numba_cuda/numba/cuda/tests/doc_examples/test_matmul.py +173 -0
  211. numba_cuda/numba/cuda/tests/doc_examples/test_montecarlo.py +109 -0
  212. numba_cuda/numba/cuda/tests/doc_examples/test_random.py +59 -0
  213. numba_cuda/numba/cuda/tests/doc_examples/test_reduction.py +76 -0
  214. numba_cuda/numba/cuda/tests/doc_examples/test_sessionize.py +130 -0
  215. numba_cuda/numba/cuda/tests/doc_examples/test_ufunc.py +50 -0
  216. numba_cuda/numba/cuda/tests/doc_examples/test_vecadd.py +73 -0
  217. numba_cuda/numba/cuda/tests/nocuda/__init__.py +8 -0
  218. numba_cuda/numba/cuda/tests/nocuda/test_dummyarray.py +359 -0
  219. numba_cuda/numba/cuda/tests/nocuda/test_function_resolution.py +36 -0
  220. numba_cuda/numba/cuda/tests/nocuda/test_import.py +49 -0
  221. numba_cuda/numba/cuda/tests/nocuda/test_library_lookup.py +238 -0
  222. numba_cuda/numba/cuda/tests/nocuda/test_nvvm.py +54 -0
  223. numba_cuda/numba/cuda/types.py +37 -0
  224. numba_cuda/numba/cuda/ufuncs.py +662 -0
  225. numba_cuda/numba/cuda/vector_types.py +209 -0
  226. numba_cuda/numba/cuda/vectorizers.py +252 -0
  227. numba_cuda-0.0.12.dist-info/LICENSE +25 -0
  228. numba_cuda-0.0.12.dist-info/METADATA +68 -0
  229. numba_cuda-0.0.12.dist-info/RECORD +231 -0
  230. {numba_cuda-0.0.1.dist-info → numba_cuda-0.0.12.dist-info}/WHEEL +1 -1
  231. numba_cuda-0.0.1.dist-info/METADATA +0 -10
  232. numba_cuda-0.0.1.dist-info/RECORD +0 -5
  233. {numba_cuda-0.0.1.dist-info → numba_cuda-0.0.12.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,398 @@
1
+ from ctypes import (c_byte, c_char_p, c_float, c_int, c_size_t, c_uint,
2
+ c_uint8, c_void_p, py_object, CFUNCTYPE, POINTER,
3
+ Structure)
4
+
5
+ cu_device = c_int
6
+ cu_device_attribute = c_int # enum
7
+ cu_context = c_void_p # an opaque handle
8
+ cu_module = c_void_p # an opaque handle
9
+ cu_jit_option = c_int # enum
10
+ cu_jit_input_type = c_int # enum
11
+ cu_function = c_void_p # an opaque handle
12
+ cu_device_ptr = c_size_t # defined as unsigned long long
13
+ cu_stream = c_void_p # an opaque handle
14
+ cu_event = c_void_p
15
+ cu_link_state = c_void_p
16
+ cu_function_attribute = c_int
17
+ cu_uuid = (c_byte * 16) # Device UUID
18
+
19
+ cu_stream_callback_pyobj = CFUNCTYPE(None, cu_stream, c_int, py_object)
20
+
21
+ cu_occupancy_b2d_size = CFUNCTYPE(c_size_t, c_int)
22
+
23
+
24
+ # Mirrors the definition of CUipcMemHandle in cuda.h
25
+ class cu_ipc_mem_handle(Structure):
26
+ _fields_ = [("reserved", c_uint8 * 64)]
27
+
28
+
29
+ # See https://docs.nvidia.com/cuda/cuda-driver-api/group__CUDA__TYPES.html
30
+ CU_STREAM_DEFAULT = 0
31
+ CU_STREAM_LEGACY = 1
32
+ CU_STREAM_PER_THREAD = 2
33
+
34
+ API_PROTOTYPES = {
35
+ # CUresult cuInit(unsigned int Flags);
36
+ 'cuInit' : (c_int, c_uint),
37
+
38
+ # CUresult cuDriverGetVersion (int* driverVersion )
39
+ 'cuDriverGetVersion': (c_int, POINTER(c_int)),
40
+
41
+ # CUresult cuDeviceGetCount(int *count);
42
+ 'cuDeviceGetCount': (c_int, POINTER(c_int)),
43
+
44
+ # CUresult cuDeviceGet(CUdevice *device, int ordinal);
45
+ 'cuDeviceGet': (c_int, POINTER(cu_device), c_int),
46
+
47
+ # CUresult cuDeviceGetName ( char* name, int len, CUdevice dev )
48
+ 'cuDeviceGetName': (c_int, c_char_p, c_int, cu_device),
49
+
50
+ # CUresult cuDeviceGetAttribute(int *pi, CUdevice_attribute attrib,
51
+ # CUdevice dev);
52
+ 'cuDeviceGetAttribute': (c_int, POINTER(c_int), cu_device_attribute,
53
+ cu_device),
54
+
55
+ # CUresult cuDeviceComputeCapability(int *major, int *minor,
56
+ # CUdevice dev);
57
+ 'cuDeviceComputeCapability': (c_int, POINTER(c_int), POINTER(c_int),
58
+ cu_device),
59
+
60
+ # CUresult cuDevicePrimaryCtxGetState(
61
+ # CUdevice dev,
62
+ # unsigned int* flags,
63
+ # int* active)
64
+ 'cuDevicePrimaryCtxGetState': (c_int,
65
+ cu_device, POINTER(c_uint), POINTER(c_int)),
66
+
67
+ # CUresult cuDevicePrimaryCtxRelease ( CUdevice dev )
68
+ 'cuDevicePrimaryCtxRelease': (c_int, cu_device),
69
+
70
+ # CUresult cuDevicePrimaryCtxReset ( CUdevice dev )
71
+ 'cuDevicePrimaryCtxReset': (c_int, cu_device),
72
+
73
+ # CUresult cuDevicePrimaryCtxRetain ( CUcontext* pctx, CUdevice dev )
74
+ 'cuDevicePrimaryCtxRetain': (c_int, POINTER(cu_context), cu_device),
75
+
76
+ # CUresult cuDevicePrimaryCtxSetFlags ( CUdevice dev, unsigned int flags )
77
+ 'cuDevicePrimaryCtxSetFlags': (c_int, cu_device, c_uint),
78
+
79
+ # CUresult cuCtxCreate(CUcontext *pctx, unsigned int flags,
80
+ # CUdevice dev);
81
+ 'cuCtxCreate': (c_int, POINTER(cu_context), c_uint, cu_device),
82
+
83
+ # CUresult cuCtxGetDevice ( CUdevice * device )
84
+ 'cuCtxGetDevice': (c_int, POINTER(cu_device)),
85
+
86
+ # CUresult cuCtxGetCurrent (CUcontext *pctx);
87
+ 'cuCtxGetCurrent': (c_int, POINTER(cu_context)),
88
+
89
+ # CUresult cuCtxPushCurrent (CUcontext pctx);
90
+ 'cuCtxPushCurrent': (c_int, cu_context),
91
+
92
+ # CUresult cuCtxPopCurrent (CUcontext *pctx);
93
+ 'cuCtxPopCurrent': (c_int, POINTER(cu_context)),
94
+
95
+ # CUresult cuCtxDestroy(CUcontext pctx);
96
+ 'cuCtxDestroy': (c_int, cu_context),
97
+
98
+ # CUresult cuModuleLoadDataEx(CUmodule *module, const void *image,
99
+ # unsigned int numOptions,
100
+ # CUjit_option *options,
101
+ # void **optionValues);
102
+ 'cuModuleLoadDataEx': (c_int, cu_module, c_void_p, c_uint,
103
+ POINTER(cu_jit_option), POINTER(c_void_p)),
104
+
105
+ # CUresult cuModuleUnload(CUmodule hmod);
106
+ 'cuModuleUnload': (c_int, cu_module),
107
+
108
+ # CUresult cuModuleGetFunction(CUfunction *hfunc, CUmodule hmod,
109
+ # const char *name);
110
+ 'cuModuleGetFunction': (c_int, cu_function, cu_module, c_char_p),
111
+
112
+ # CUresult cuModuleGetGlobal ( CUdeviceptr* dptr, size_t* bytes, CUmodule
113
+ # hmod, const char* name )
114
+ 'cuModuleGetGlobal': (c_int, POINTER(cu_device_ptr), POINTER(c_size_t),
115
+ cu_module, c_char_p),
116
+
117
+ # CUresult CUDAAPI cuFuncSetCacheConfig(CUfunction hfunc,
118
+ # CUfunc_cache config);
119
+ 'cuFuncSetCacheConfig': (c_int, cu_function, c_uint),
120
+
121
+ # CUresult cuMemAlloc(CUdeviceptr *dptr, size_t bytesize);
122
+ 'cuMemAlloc': (c_int, POINTER(cu_device_ptr), c_size_t),
123
+
124
+ # CUresult cuMemAllocManaged(CUdeviceptr *dptr, size_t bytesize,
125
+ # unsigned int flags);
126
+ 'cuMemAllocManaged': (c_int, c_void_p, c_size_t, c_uint),
127
+
128
+ # CUresult cuMemsetD8(CUdeviceptr dstDevice, unsigned char uc, size_t N)
129
+ 'cuMemsetD8': (c_int, cu_device_ptr, c_uint8, c_size_t),
130
+
131
+ # CUresult cuMemsetD8Async(CUdeviceptr dstDevice, unsigned char uc,
132
+ # size_t N, CUstream hStream);
133
+ 'cuMemsetD8Async': (c_int,
134
+ cu_device_ptr, c_uint8, c_size_t, cu_stream),
135
+
136
+ # CUresult cuMemcpyHtoD(CUdeviceptr dstDevice, const void *srcHost,
137
+ # size_t ByteCount);
138
+ 'cuMemcpyHtoD': (c_int, cu_device_ptr, c_void_p, c_size_t),
139
+
140
+ # CUresult cuMemcpyHtoDAsync(CUdeviceptr dstDevice, const void *srcHost,
141
+ # size_t ByteCount, CUstream hStream);
142
+ 'cuMemcpyHtoDAsync': (c_int, cu_device_ptr, c_void_p, c_size_t,
143
+ cu_stream),
144
+
145
+ # CUresult cuMemcpyDtoD(CUdeviceptr dstDevice, const void *srcDevice,
146
+ # size_t ByteCount);
147
+ 'cuMemcpyDtoD': (c_int, cu_device_ptr, cu_device_ptr, c_size_t),
148
+
149
+ # CUresult cuMemcpyDtoDAsync(CUdeviceptr dstDevice, const void *srcDevice,
150
+ # size_t ByteCount, CUstream hStream);
151
+ 'cuMemcpyDtoDAsync': (c_int, cu_device_ptr, cu_device_ptr, c_size_t,
152
+ cu_stream),
153
+
154
+
155
+ # CUresult cuMemcpyDtoH(void *dstHost, CUdeviceptr srcDevice,
156
+ # size_t ByteCount);
157
+ 'cuMemcpyDtoH': (c_int, c_void_p, cu_device_ptr, c_size_t),
158
+
159
+ # CUresult cuMemcpyDtoHAsync(void *dstHost, CUdeviceptr srcDevice,
160
+ # size_t ByteCount, CUstream hStream);
161
+ 'cuMemcpyDtoHAsync': (c_int, c_void_p, cu_device_ptr, c_size_t,
162
+ cu_stream),
163
+
164
+ # CUresult cuMemFree(CUdeviceptr dptr);
165
+ 'cuMemFree': (c_int, cu_device_ptr),
166
+
167
+ # CUresult cuStreamCreate(CUstream *phStream, unsigned int Flags);
168
+ 'cuStreamCreate': (c_int, POINTER(cu_stream), c_uint),
169
+
170
+ # CUresult cuStreamDestroy(CUstream hStream);
171
+ 'cuStreamDestroy': (c_int, cu_stream),
172
+
173
+ # CUresult cuStreamSynchronize(CUstream hStream);
174
+ 'cuStreamSynchronize': (c_int, cu_stream),
175
+
176
+ # CUresult cuStreamAddCallback(
177
+ # CUstream hStream,
178
+ # CUstreamCallback callback,
179
+ # void* userData,
180
+ # unsigned int flags)
181
+ 'cuStreamAddCallback': (c_int, cu_stream, cu_stream_callback_pyobj,
182
+ py_object, c_uint),
183
+
184
+ # CUresult cuLaunchKernel(CUfunction f, unsigned int gridDimX,
185
+ # unsigned int gridDimY,
186
+ # unsigned int gridDimZ,
187
+ # unsigned int blockDimX,
188
+ # unsigned int blockDimY,
189
+ # unsigned int blockDimZ,
190
+ # unsigned int sharedMemBytes,
191
+ # CUstream hStream, void **kernelParams,
192
+ # void ** extra)
193
+ 'cuLaunchKernel': (c_int, cu_function, c_uint, c_uint, c_uint,
194
+ c_uint, c_uint, c_uint, c_uint, cu_stream,
195
+ POINTER(c_void_p), POINTER(c_void_p)),
196
+
197
+ # CUresult cuLaunchCooperativeKernel(CUfunction f, unsigned int gridDimX,
198
+ # unsigned int gridDimY,
199
+ # unsigned int gridDimZ,
200
+ # unsigned int blockDimX,
201
+ # unsigned int blockDimY,
202
+ # unsigned int blockDimZ,
203
+ # unsigned int sharedMemBytes,
204
+ # CUstream hStream, void **kernelParams)
205
+ 'cuLaunchCooperativeKernel': (c_int, cu_function, c_uint, c_uint, c_uint,
206
+ c_uint, c_uint, c_uint, c_uint, cu_stream,
207
+ POINTER(c_void_p)),
208
+
209
+ # CUresult cuMemHostAlloc ( void ** pp,
210
+ # size_t bytesize,
211
+ # unsigned int Flags
212
+ # )
213
+ 'cuMemHostAlloc': (c_int, c_void_p, c_size_t, c_uint),
214
+
215
+ # CUresult cuMemFreeHost ( void * p )
216
+ 'cuMemFreeHost': (c_int, c_void_p),
217
+
218
+ # CUresult cuMemHostRegister(void * p,
219
+ # size_t bytesize,
220
+ # unsigned int Flags)
221
+ 'cuMemHostRegister': (c_int, c_void_p, c_size_t, c_uint),
222
+
223
+ # CUresult cuMemHostUnregister(void * p)
224
+ 'cuMemHostUnregister': (c_int, c_void_p),
225
+
226
+ # CUresult cuMemHostGetDevicePointer(CUdeviceptr * pdptr,
227
+ # void * p,
228
+ # unsigned int Flags)
229
+ 'cuMemHostGetDevicePointer': (c_int, POINTER(cu_device_ptr),
230
+ c_void_p, c_uint),
231
+
232
+ # CUresult cuMemGetInfo(size_t * free, size_t * total)
233
+ 'cuMemGetInfo' : (c_int, POINTER(c_size_t), POINTER(c_size_t)),
234
+
235
+ # CUresult cuEventCreate ( CUevent * phEvent,
236
+ # unsigned int Flags )
237
+ 'cuEventCreate': (c_int, POINTER(cu_event), c_uint),
238
+
239
+ # CUresult cuEventDestroy ( CUevent hEvent )
240
+ 'cuEventDestroy': (c_int, cu_event),
241
+
242
+ # CUresult cuEventElapsedTime ( float * pMilliseconds,
243
+ # CUevent hStart,
244
+ # CUevent hEnd )
245
+ 'cuEventElapsedTime': (c_int, POINTER(c_float), cu_event, cu_event),
246
+
247
+ # CUresult cuEventQuery ( CUevent hEvent )
248
+ 'cuEventQuery': (c_int, cu_event),
249
+
250
+ # CUresult cuEventRecord ( CUevent hEvent,
251
+ # CUstream hStream )
252
+ 'cuEventRecord': (c_int, cu_event, cu_stream),
253
+
254
+ # CUresult cuEventSynchronize ( CUevent hEvent )
255
+ 'cuEventSynchronize': (c_int, cu_event),
256
+
257
+
258
+ # CUresult cuStreamWaitEvent ( CUstream hStream,
259
+ # CUevent hEvent,
260
+ # unsigned int Flags )
261
+ 'cuStreamWaitEvent': (c_int, cu_stream, cu_event, c_uint),
262
+
263
+ # CUresult cuPointerGetAttribute (
264
+ # void *data,
265
+ # CUpointer_attribute attribute,
266
+ # CUdeviceptr ptr)
267
+ 'cuPointerGetAttribute': (c_int, c_void_p, c_uint, cu_device_ptr),
268
+
269
+ # CUresult cuMemGetAddressRange ( CUdeviceptr * pbase,
270
+ # size_t * psize,
271
+ # CUdeviceptr dptr
272
+ # )
273
+ 'cuMemGetAddressRange': (c_int,
274
+ POINTER(cu_device_ptr),
275
+ POINTER(c_size_t),
276
+ cu_device_ptr),
277
+
278
+ # CUresult cuMemHostGetFlags ( unsigned int * pFlags,
279
+ # void * p )
280
+ 'cuMemHostGetFlags': (c_int,
281
+ POINTER(c_uint),
282
+ c_void_p),
283
+
284
+ # CUresult cuCtxSynchronize ( void )
285
+ 'cuCtxSynchronize' : (c_int,),
286
+
287
+ # CUresult
288
+ # cuLinkCreate(unsigned int numOptions, CUjit_option *options,
289
+ # void **optionValues, CUlinkState *stateOut);
290
+ 'cuLinkCreate': (c_int,
291
+ c_uint, POINTER(cu_jit_option),
292
+ POINTER(c_void_p), POINTER(cu_link_state)),
293
+
294
+ # CUresult
295
+ # cuLinkAddData(CUlinkState state, CUjitInputType type, void *data,
296
+ # size_t size, const char *name, unsigned
297
+ # int numOptions, CUjit_option *options,
298
+ # void **optionValues);
299
+ 'cuLinkAddData': (c_int,
300
+ cu_link_state, cu_jit_input_type, c_void_p,
301
+ c_size_t, c_char_p, c_uint, POINTER(cu_jit_option),
302
+ POINTER(c_void_p)),
303
+
304
+ # CUresult
305
+ # cuLinkAddFile(CUlinkState state, CUjitInputType type,
306
+ # const char *path, unsigned int numOptions,
307
+ # CUjit_option *options, void **optionValues);
308
+
309
+ 'cuLinkAddFile': (c_int,
310
+ cu_link_state, cu_jit_input_type, c_char_p, c_uint,
311
+ POINTER(cu_jit_option), POINTER(c_void_p)),
312
+
313
+ # CUresult CUDAAPI
314
+ # cuLinkComplete(CUlinkState state, void **cubinOut, size_t *sizeOut)
315
+ 'cuLinkComplete': (c_int,
316
+ cu_link_state, POINTER(c_void_p), POINTER(c_size_t)),
317
+
318
+ # CUresult CUDAAPI
319
+ # cuLinkDestroy(CUlinkState state)
320
+ 'cuLinkDestroy': (c_int, cu_link_state),
321
+
322
+ # cuProfilerStart ( void )
323
+ 'cuProfilerStart': (c_int,),
324
+
325
+ # cuProfilerStop ( void )
326
+ 'cuProfilerStop': (c_int,),
327
+
328
+ # CUresult cuFuncGetAttribute ( int* pi, CUfunction_attribute attrib,
329
+ # CUfunction hfunc )
330
+ 'cuFuncGetAttribute': (c_int,
331
+ POINTER(c_int), cu_function_attribute, cu_function),
332
+
333
+ # CUresult CUDAAPI cuOccupancyMaxActiveBlocksPerMultiprocessor(
334
+ # int *numBlocks,
335
+ # CUfunction func,
336
+ # int blockSize,
337
+ # size_t dynamicSMemSize);
338
+ 'cuOccupancyMaxActiveBlocksPerMultiprocessor': (c_int, POINTER(c_int),
339
+ cu_function, c_size_t,
340
+ c_uint),
341
+
342
+ # CUresult CUDAAPI cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags(
343
+ # int *numBlocks,
344
+ # CUfunction func,
345
+ # int blockSize,
346
+ # size_t dynamicSMemSize,
347
+ # unsigned int flags);
348
+ 'cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags': (c_int,
349
+ POINTER(c_int),
350
+ cu_function,
351
+ c_size_t, c_uint),
352
+
353
+ # CUresult CUDAAPI cuOccupancyMaxPotentialBlockSize(
354
+ # int *minGridSize, int *blockSize,
355
+ # CUfunction func,
356
+ # CUoccupancyB2DSize blockSizeToDynamicSMemSize,
357
+ # size_t dynamicSMemSize, int blockSizeLimit);
358
+ 'cuOccupancyMaxPotentialBlockSize': (c_int, POINTER(c_int), POINTER(c_int),
359
+ cu_function, cu_occupancy_b2d_size,
360
+ c_size_t, c_int),
361
+
362
+ # CUresult CUDAAPI cuOccupancyMaxPotentialBlockSizeWithFlags(
363
+ # int *minGridSize, int *blockSize,
364
+ # CUfunction func,
365
+ # CUoccupancyB2DSize blockSizeToDynamicSMemSize,
366
+ # size_t dynamicSMemSize, int blockSizeLimit,
367
+ # unsigned int flags);
368
+ 'cuOccupancyMaxPotentialBlockSizeWithFlags': (c_int, POINTER(c_int),
369
+ POINTER(c_int), cu_function,
370
+ cu_occupancy_b2d_size,
371
+ c_size_t, c_int, c_uint),
372
+
373
+ # CUresult cuIpcGetMemHandle ( CUipcMemHandle* pHandle, CUdeviceptr dptr )
374
+ 'cuIpcGetMemHandle': (c_int,
375
+ POINTER(cu_ipc_mem_handle), cu_device_ptr),
376
+
377
+ # CUresult cuIpcOpenMemHandle(
378
+ # CUdeviceptr* pdptr,
379
+ # CUipcMemHandle handle,
380
+ # unsigned int Flags)
381
+ 'cuIpcOpenMemHandle': (c_int, POINTER(cu_device_ptr), cu_ipc_mem_handle,
382
+ c_uint),
383
+
384
+ # CUresult cuIpcCloseMemHandle ( CUdeviceptr dptr )
385
+
386
+ 'cuIpcCloseMemHandle': (c_int, cu_device_ptr),
387
+
388
+ # CUresult cuCtxEnablePeerAccess (CUcontext peerContext, unsigned int Flags)
389
+ 'cuCtxEnablePeerAccess': (c_int, cu_context, c_int),
390
+
391
+ # CUresult cuDeviceCanAccessPeer ( int* canAccessPeer,
392
+ # CUdevice dev, CUdevice peerDev )
393
+ 'cuDeviceCanAccessPeer': (c_int,
394
+ POINTER(c_int), cu_device, cu_device),
395
+
396
+ # CUresult cuDeviceGetUuid ( CUuuid* uuid, CUdevice dev )
397
+ 'cuDeviceGetUuid': (c_int, POINTER(cu_uuid), cu_device),
398
+ }