numba-cuda 0.18.1__py3-none-any.whl → 0.19.1__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.

Potentially problematic release.


This version of numba-cuda might be problematic. Click here for more details.

Files changed (301) hide show
  1. _numba_cuda_redirector.pth +3 -0
  2. _numba_cuda_redirector.py +3 -0
  3. numba_cuda/VERSION +1 -1
  4. numba_cuda/__init__.py +2 -1
  5. numba_cuda/_version.py +2 -13
  6. numba_cuda/numba/cuda/__init__.py +4 -1
  7. numba_cuda/numba/cuda/_internal/cuda_bf16.py +5 -2
  8. numba_cuda/numba/cuda/_internal/cuda_fp16.py +4 -1
  9. numba_cuda/numba/cuda/api.py +5 -7
  10. numba_cuda/numba/cuda/api_util.py +3 -0
  11. numba_cuda/numba/cuda/args.py +3 -0
  12. numba_cuda/numba/cuda/bf16.py +3 -0
  13. numba_cuda/numba/cuda/cg.py +3 -0
  14. numba_cuda/numba/cuda/cgutils.py +3 -0
  15. numba_cuda/numba/cuda/codegen.py +3 -0
  16. numba_cuda/numba/cuda/compiler.py +10 -4
  17. numba_cuda/numba/cuda/core/caching.py +3 -0
  18. numba_cuda/numba/cuda/core/callconv.py +3 -0
  19. numba_cuda/numba/cuda/core/codegen.py +3 -0
  20. numba_cuda/numba/cuda/core/compiler.py +3 -0
  21. numba_cuda/numba/cuda/core/interpreter.py +3595 -0
  22. numba_cuda/numba/cuda/core/ir_utils.py +2644 -0
  23. numba_cuda/numba/cuda/core/sigutils.py +58 -0
  24. numba_cuda/numba/cuda/core/typed_passes.py +3 -0
  25. numba_cuda/numba/cuda/cuda_paths.py +12 -17
  26. numba_cuda/numba/cuda/cudadecl.py +4 -1
  27. numba_cuda/numba/cuda/cudadrv/__init__.py +3 -0
  28. numba_cuda/numba/cuda/cudadrv/devicearray.py +3 -0
  29. numba_cuda/numba/cuda/cudadrv/devices.py +3 -0
  30. numba_cuda/numba/cuda/cudadrv/driver.py +7 -19
  31. numba_cuda/numba/cuda/cudadrv/drvapi.py +3 -0
  32. numba_cuda/numba/cuda/cudadrv/dummyarray.py +3 -0
  33. numba_cuda/numba/cuda/cudadrv/enums.py +3 -0
  34. numba_cuda/numba/cuda/cudadrv/error.py +4 -0
  35. numba_cuda/numba/cuda/cudadrv/libs.py +4 -2
  36. numba_cuda/numba/cuda/cudadrv/linkable_code.py +3 -0
  37. numba_cuda/numba/cuda/cudadrv/mappings.py +3 -0
  38. numba_cuda/numba/cuda/cudadrv/ndarray.py +3 -0
  39. numba_cuda/numba/cuda/cudadrv/nvrtc.py +47 -44
  40. numba_cuda/numba/cuda/cudadrv/nvvm.py +6 -18
  41. numba_cuda/numba/cuda/cudadrv/rtapi.py +3 -0
  42. numba_cuda/numba/cuda/cudadrv/runtime.py +15 -1
  43. numba_cuda/numba/cuda/cudaimpl.py +3 -0
  44. numba_cuda/numba/cuda/cudamath.py +4 -1
  45. numba_cuda/numba/cuda/debuginfo.py +3 -0
  46. numba_cuda/numba/cuda/decorators.py +7 -3
  47. numba_cuda/numba/cuda/descriptor.py +3 -0
  48. numba_cuda/numba/cuda/device_init.py +3 -0
  49. numba_cuda/numba/cuda/deviceufunc.py +5 -1
  50. numba_cuda/numba/cuda/dispatcher.py +6 -2
  51. numba_cuda/numba/cuda/errors.py +10 -0
  52. numba_cuda/numba/cuda/extending.py +4 -1
  53. numba_cuda/numba/cuda/flags.py +2 -0
  54. numba_cuda/numba/cuda/fp16.py +3 -0
  55. numba_cuda/numba/cuda/initialize.py +4 -0
  56. numba_cuda/numba/cuda/intrinsic_wrapper.py +3 -0
  57. numba_cuda/numba/cuda/intrinsics.py +3 -0
  58. numba_cuda/numba/cuda/itanium_mangler.py +214 -0
  59. numba_cuda/numba/cuda/kernels/__init__.py +2 -0
  60. numba_cuda/numba/cuda/kernels/reduction.py +3 -0
  61. numba_cuda/numba/cuda/kernels/transpose.py +3 -0
  62. numba_cuda/numba/cuda/libdevice.py +4 -0
  63. numba_cuda/numba/cuda/libdevicedecl.py +4 -1
  64. numba_cuda/numba/cuda/libdevicefuncs.py +4 -1
  65. numba_cuda/numba/cuda/libdeviceimpl.py +3 -0
  66. numba_cuda/numba/cuda/locks.py +3 -0
  67. numba_cuda/numba/cuda/lowering.py +53 -16
  68. numba_cuda/numba/cuda/mathimpl.py +3 -0
  69. numba_cuda/numba/cuda/memory_management/__init__.py +3 -0
  70. numba_cuda/numba/cuda/memory_management/memsys.cu +5 -0
  71. numba_cuda/numba/cuda/memory_management/memsys.cuh +5 -0
  72. numba_cuda/numba/cuda/memory_management/nrt.cu +5 -0
  73. numba_cuda/numba/cuda/memory_management/nrt.cuh +5 -0
  74. numba_cuda/numba/cuda/memory_management/nrt.py +5 -1
  75. numba_cuda/numba/cuda/models.py +3 -0
  76. numba_cuda/numba/cuda/nvvmutils.py +3 -0
  77. numba_cuda/numba/cuda/printimpl.py +3 -0
  78. numba_cuda/numba/cuda/random.py +3 -0
  79. numba_cuda/numba/cuda/reshape_funcs.cu +5 -0
  80. numba_cuda/numba/cuda/serialize.py +3 -0
  81. numba_cuda/numba/cuda/simulator/__init__.py +3 -0
  82. numba_cuda/numba/cuda/simulator/_internal/__init__.py +3 -0
  83. numba_cuda/numba/cuda/simulator/_internal/cuda_bf16.py +2 -0
  84. numba_cuda/numba/cuda/simulator/api.py +4 -1
  85. numba_cuda/numba/cuda/simulator/bf16.py +3 -0
  86. numba_cuda/numba/cuda/simulator/compiler.py +3 -0
  87. numba_cuda/numba/cuda/simulator/cudadrv/__init__.py +3 -0
  88. numba_cuda/numba/cuda/simulator/cudadrv/devicearray.py +3 -0
  89. numba_cuda/numba/cuda/simulator/cudadrv/devices.py +3 -0
  90. numba_cuda/numba/cuda/simulator/cudadrv/driver.py +3 -7
  91. numba_cuda/numba/cuda/simulator/cudadrv/drvapi.py +3 -0
  92. numba_cuda/numba/cuda/simulator/cudadrv/dummyarray.py +3 -0
  93. numba_cuda/numba/cuda/simulator/cudadrv/error.py +4 -0
  94. numba_cuda/numba/cuda/simulator/cudadrv/libs.py +4 -0
  95. numba_cuda/numba/cuda/simulator/cudadrv/linkable_code.py +4 -0
  96. numba_cuda/numba/cuda/simulator/cudadrv/nvrtc.py +3 -0
  97. numba_cuda/numba/cuda/simulator/cudadrv/nvvm.py +3 -0
  98. numba_cuda/numba/cuda/simulator/cudadrv/runtime.py +3 -0
  99. numba_cuda/numba/cuda/simulator/dispatcher.py +4 -0
  100. numba_cuda/numba/cuda/simulator/kernel.py +3 -0
  101. numba_cuda/numba/cuda/simulator/kernelapi.py +3 -0
  102. numba_cuda/numba/cuda/simulator/memory_management/__init__.py +3 -0
  103. numba_cuda/numba/cuda/simulator/memory_management/nrt.py +3 -0
  104. numba_cuda/numba/cuda/simulator/reduction.py +3 -0
  105. numba_cuda/numba/cuda/simulator/vector_types.py +3 -0
  106. numba_cuda/numba/cuda/simulator_init.py +3 -0
  107. numba_cuda/numba/cuda/stubs.py +3 -0
  108. numba_cuda/numba/cuda/target.py +4 -2
  109. numba_cuda/numba/cuda/testing.py +7 -6
  110. numba_cuda/numba/cuda/tests/__init__.py +3 -0
  111. numba_cuda/numba/cuda/tests/complex_usecases.py +3 -0
  112. numba_cuda/numba/cuda/tests/core/serialize_usecases.py +3 -0
  113. numba_cuda/numba/cuda/tests/core/test_itanium_mangler.py +83 -0
  114. numba_cuda/numba/cuda/tests/core/test_serialize.py +3 -0
  115. numba_cuda/numba/cuda/tests/cudadrv/__init__.py +3 -0
  116. numba_cuda/numba/cuda/tests/cudadrv/test_array_attr.py +3 -0
  117. numba_cuda/numba/cuda/tests/cudadrv/test_context_stack.py +3 -0
  118. numba_cuda/numba/cuda/tests/cudadrv/test_cuda_array_slicing.py +3 -0
  119. numba_cuda/numba/cuda/tests/cudadrv/test_cuda_auto_context.py +3 -0
  120. numba_cuda/numba/cuda/tests/cudadrv/test_cuda_devicerecord.py +3 -0
  121. numba_cuda/numba/cuda/tests/cudadrv/test_cuda_driver.py +3 -0
  122. numba_cuda/numba/cuda/tests/cudadrv/test_cuda_libraries.py +3 -0
  123. numba_cuda/numba/cuda/tests/cudadrv/test_cuda_memory.py +3 -0
  124. numba_cuda/numba/cuda/tests/cudadrv/test_cuda_ndarray.py +4 -1
  125. numba_cuda/numba/cuda/tests/cudadrv/test_deallocations.py +4 -1
  126. numba_cuda/numba/cuda/tests/cudadrv/test_detect.py +4 -1
  127. numba_cuda/numba/cuda/tests/cudadrv/test_emm_plugins.py +4 -1
  128. numba_cuda/numba/cuda/tests/cudadrv/test_events.py +3 -0
  129. numba_cuda/numba/cuda/tests/cudadrv/test_host_alloc.py +3 -0
  130. numba_cuda/numba/cuda/tests/cudadrv/test_init.py +3 -0
  131. numba_cuda/numba/cuda/tests/cudadrv/test_inline_ptx.py +3 -0
  132. numba_cuda/numba/cuda/tests/cudadrv/test_is_fp16.py +3 -0
  133. numba_cuda/numba/cuda/tests/cudadrv/test_linker.py +4 -1
  134. numba_cuda/numba/cuda/tests/cudadrv/test_managed_alloc.py +4 -1
  135. numba_cuda/numba/cuda/tests/cudadrv/test_module_callbacks.py +3 -0
  136. numba_cuda/numba/cuda/tests/cudadrv/test_mvc.py +4 -1
  137. numba_cuda/numba/cuda/tests/cudadrv/test_nvjitlink.py +3 -0
  138. numba_cuda/numba/cuda/tests/cudadrv/test_nvrtc.py +7 -6
  139. numba_cuda/numba/cuda/tests/cudadrv/test_nvvm_driver.py +3 -4
  140. numba_cuda/numba/cuda/tests/cudadrv/test_pinned.py +3 -0
  141. numba_cuda/numba/cuda/tests/cudadrv/test_profiler.py +3 -0
  142. numba_cuda/numba/cuda/tests/cudadrv/test_ptds.py +4 -1
  143. numba_cuda/numba/cuda/tests/cudadrv/test_reset_device.py +3 -0
  144. numba_cuda/numba/cuda/tests/cudadrv/test_runtime.py +3 -0
  145. numba_cuda/numba/cuda/tests/cudadrv/test_select_device.py +3 -0
  146. numba_cuda/numba/cuda/tests/cudadrv/test_streams.py +3 -0
  147. numba_cuda/numba/cuda/tests/cudapy/__init__.py +3 -0
  148. numba_cuda/numba/cuda/tests/cudapy/cache_usecases.py +3 -0
  149. numba_cuda/numba/cuda/tests/cudapy/cache_with_cpu_usecases.py +3 -0
  150. numba_cuda/numba/cuda/tests/cudapy/cg_cache_usecases.py +3 -0
  151. numba_cuda/numba/cuda/tests/cudapy/extensions_usecases.py +3 -0
  152. numba_cuda/numba/cuda/tests/cudapy/recursion_usecases.py +3 -0
  153. numba_cuda/numba/cuda/tests/cudapy/test_alignment.py +3 -0
  154. numba_cuda/numba/cuda/tests/cudapy/test_array.py +3 -0
  155. numba_cuda/numba/cuda/tests/cudapy/test_array_alignment.py +3 -0
  156. numba_cuda/numba/cuda/tests/cudapy/test_array_args.py +3 -0
  157. numba_cuda/numba/cuda/tests/cudapy/test_array_methods.py +3 -0
  158. numba_cuda/numba/cuda/tests/cudapy/test_atomics.py +3 -0
  159. numba_cuda/numba/cuda/tests/cudapy/test_bfloat16.py +4 -3
  160. numba_cuda/numba/cuda/tests/cudapy/test_bfloat16_bindings.py +4 -3
  161. numba_cuda/numba/cuda/tests/cudapy/test_blackscholes.py +3 -0
  162. numba_cuda/numba/cuda/tests/cudapy/test_boolean.py +3 -0
  163. numba_cuda/numba/cuda/tests/cudapy/test_caching.py +149 -3
  164. numba_cuda/numba/cuda/tests/cudapy/test_casting.py +3 -0
  165. numba_cuda/numba/cuda/tests/cudapy/test_cffi.py +4 -1
  166. numba_cuda/numba/cuda/tests/cudapy/test_compiler.py +3 -4
  167. numba_cuda/numba/cuda/tests/cudapy/test_complex.py +3 -0
  168. numba_cuda/numba/cuda/tests/cudapy/test_complex_kernel.py +3 -0
  169. numba_cuda/numba/cuda/tests/cudapy/test_const_string.py +3 -0
  170. numba_cuda/numba/cuda/tests/cudapy/test_constmem.py +3 -0
  171. numba_cuda/numba/cuda/tests/cudapy/test_cooperative_groups.py +3 -0
  172. numba_cuda/numba/cuda/tests/cudapy/test_cuda_array_interface.py +4 -1
  173. numba_cuda/numba/cuda/tests/cudapy/test_cuda_jit_no_types.py +4 -1
  174. numba_cuda/numba/cuda/tests/cudapy/test_datetime.py +3 -0
  175. numba_cuda/numba/cuda/tests/cudapy/test_debug.py +4 -1
  176. numba_cuda/numba/cuda/tests/cudapy/test_debuginfo.py +23 -284
  177. numba_cuda/numba/cuda/tests/cudapy/test_debuginfo_types.py +476 -0
  178. numba_cuda/numba/cuda/tests/cudapy/test_device_func.py +4 -1
  179. numba_cuda/numba/cuda/tests/cudapy/test_dispatcher.py +3 -0
  180. numba_cuda/numba/cuda/tests/cudapy/test_enums.py +3 -0
  181. numba_cuda/numba/cuda/tests/cudapy/test_errors.py +4 -1
  182. numba_cuda/numba/cuda/tests/cudapy/test_exception.py +3 -0
  183. numba_cuda/numba/cuda/tests/cudapy/test_extending.py +4 -6
  184. numba_cuda/numba/cuda/tests/cudapy/test_fastmath.py +3 -0
  185. numba_cuda/numba/cuda/tests/cudapy/test_forall.py +3 -0
  186. numba_cuda/numba/cuda/tests/cudapy/test_freevar.py +3 -0
  187. numba_cuda/numba/cuda/tests/cudapy/test_frexp_ldexp.py +3 -0
  188. numba_cuda/numba/cuda/tests/cudapy/test_globals.py +3 -0
  189. numba_cuda/numba/cuda/tests/cudapy/test_gufunc.py +4 -1
  190. numba_cuda/numba/cuda/tests/cudapy/test_gufunc_scalar.py +3 -0
  191. numba_cuda/numba/cuda/tests/cudapy/test_gufunc_scheduling.py +3 -0
  192. numba_cuda/numba/cuda/tests/cudapy/test_idiv.py +3 -0
  193. numba_cuda/numba/cuda/tests/cudapy/test_inline.py +3 -0
  194. numba_cuda/numba/cuda/tests/cudapy/test_inspect.py +3 -0
  195. numba_cuda/numba/cuda/tests/cudapy/test_intrinsics.py +3 -0
  196. numba_cuda/numba/cuda/tests/cudapy/test_ipc.py +4 -1
  197. numba_cuda/numba/cuda/tests/cudapy/test_ir_utils.py +298 -0
  198. numba_cuda/numba/cuda/tests/cudapy/test_iterators.py +3 -0
  199. numba_cuda/numba/cuda/tests/cudapy/test_lang.py +3 -0
  200. numba_cuda/numba/cuda/tests/cudapy/test_laplace.py +3 -0
  201. numba_cuda/numba/cuda/tests/cudapy/test_libdevice.py +3 -0
  202. numba_cuda/numba/cuda/tests/cudapy/test_lineinfo.py +4 -1
  203. numba_cuda/numba/cuda/tests/cudapy/test_localmem.py +3 -0
  204. numba_cuda/numba/cuda/tests/cudapy/test_mandel.py +3 -0
  205. numba_cuda/numba/cuda/tests/cudapy/test_math.py +3 -0
  206. numba_cuda/numba/cuda/tests/cudapy/test_matmul.py +3 -0
  207. numba_cuda/numba/cuda/tests/cudapy/test_minmax.py +3 -0
  208. numba_cuda/numba/cuda/tests/cudapy/test_montecarlo.py +3 -0
  209. numba_cuda/numba/cuda/tests/cudapy/test_multigpu.py +3 -0
  210. numba_cuda/numba/cuda/tests/cudapy/test_multiprocessing.py +3 -0
  211. numba_cuda/numba/cuda/tests/cudapy/test_multithreads.py +3 -0
  212. numba_cuda/numba/cuda/tests/cudapy/test_nondet.py +3 -0
  213. numba_cuda/numba/cuda/tests/cudapy/test_operator.py +4 -1
  214. numba_cuda/numba/cuda/tests/cudapy/test_optimization.py +3 -0
  215. numba_cuda/numba/cuda/tests/cudapy/test_overload.py +3 -0
  216. numba_cuda/numba/cuda/tests/cudapy/test_powi.py +3 -0
  217. numba_cuda/numba/cuda/tests/cudapy/test_print.py +3 -0
  218. numba_cuda/numba/cuda/tests/cudapy/test_py2_div_issue.py +3 -0
  219. numba_cuda/numba/cuda/tests/cudapy/test_random.py +3 -0
  220. numba_cuda/numba/cuda/tests/cudapy/test_record_dtype.py +3 -0
  221. numba_cuda/numba/cuda/tests/cudapy/test_recursion.py +3 -0
  222. numba_cuda/numba/cuda/tests/cudapy/test_reduction.py +3 -0
  223. numba_cuda/numba/cuda/tests/cudapy/test_retrieve_autoconverted_arrays.py +3 -0
  224. numba_cuda/numba/cuda/tests/cudapy/test_serialize.py +3 -0
  225. numba_cuda/numba/cuda/tests/cudapy/test_slicing.py +3 -0
  226. numba_cuda/numba/cuda/tests/cudapy/test_sm.py +3 -0
  227. numba_cuda/numba/cuda/tests/cudapy/test_sm_creation.py +3 -0
  228. numba_cuda/numba/cuda/tests/cudapy/test_stream_api.py +3 -0
  229. numba_cuda/numba/cuda/tests/cudapy/test_sync.py +3 -0
  230. numba_cuda/numba/cuda/tests/cudapy/test_transpose.py +3 -0
  231. numba_cuda/numba/cuda/tests/cudapy/test_ufuncs.py +4 -1
  232. numba_cuda/numba/cuda/tests/cudapy/test_userexc.py +3 -0
  233. numba_cuda/numba/cuda/tests/cudapy/test_vector_type.py +3 -0
  234. numba_cuda/numba/cuda/tests/cudapy/test_vectorize.py +3 -0
  235. numba_cuda/numba/cuda/tests/cudapy/test_vectorize_complex.py +3 -0
  236. numba_cuda/numba/cuda/tests/cudapy/test_vectorize_decor.py +3 -0
  237. numba_cuda/numba/cuda/tests/cudapy/test_vectorize_device.py +3 -0
  238. numba_cuda/numba/cuda/tests/cudapy/test_vectorize_scalar_arg.py +3 -0
  239. numba_cuda/numba/cuda/tests/cudapy/test_warning.py +8 -1
  240. numba_cuda/numba/cuda/tests/cudapy/test_warp_ops.py +3 -0
  241. numba_cuda/numba/cuda/tests/cudasim/__init__.py +3 -0
  242. numba_cuda/numba/cuda/tests/cudasim/support.py +3 -0
  243. numba_cuda/numba/cuda/tests/cudasim/test_cudasim_issues.py +3 -0
  244. numba_cuda/numba/cuda/tests/data/__init__.py +2 -0
  245. numba_cuda/numba/cuda/tests/data/cta_barrier.cu +5 -0
  246. numba_cuda/numba/cuda/tests/data/cuda_include.cu +5 -0
  247. numba_cuda/numba/cuda/tests/data/error.cu +5 -0
  248. numba_cuda/numba/cuda/tests/data/include/add.cuh +5 -0
  249. numba_cuda/numba/cuda/tests/data/jitlink.cu +5 -0
  250. numba_cuda/numba/cuda/tests/data/warn.cu +5 -0
  251. numba_cuda/numba/cuda/tests/doc_examples/__init__.py +3 -0
  252. numba_cuda/numba/cuda/tests/doc_examples/ffi/__init__.py +2 -0
  253. numba_cuda/numba/cuda/tests/doc_examples/ffi/functions.cu +5 -0
  254. numba_cuda/numba/cuda/tests/doc_examples/ffi/include/mul.cuh +5 -0
  255. numba_cuda/numba/cuda/tests/doc_examples/ffi/saxpy.cu +5 -0
  256. numba_cuda/numba/cuda/tests/doc_examples/test_cg.py +3 -0
  257. numba_cuda/numba/cuda/tests/doc_examples/test_cpointer.py +4 -1
  258. numba_cuda/numba/cuda/tests/doc_examples/test_cpu_gpu_compat.py +4 -1
  259. numba_cuda/numba/cuda/tests/doc_examples/test_ffi.py +4 -1
  260. numba_cuda/numba/cuda/tests/doc_examples/test_laplace.py +4 -1
  261. numba_cuda/numba/cuda/tests/doc_examples/test_matmul.py +4 -1
  262. numba_cuda/numba/cuda/tests/doc_examples/test_montecarlo.py +4 -1
  263. numba_cuda/numba/cuda/tests/doc_examples/test_random.py +3 -0
  264. numba_cuda/numba/cuda/tests/doc_examples/test_reduction.py +4 -1
  265. numba_cuda/numba/cuda/tests/doc_examples/test_sessionize.py +4 -1
  266. numba_cuda/numba/cuda/tests/doc_examples/test_ufunc.py +4 -1
  267. numba_cuda/numba/cuda/tests/doc_examples/test_vecadd.py +4 -1
  268. numba_cuda/numba/cuda/tests/enum_usecases.py +3 -0
  269. numba_cuda/numba/cuda/tests/nocuda/__init__.py +3 -0
  270. numba_cuda/numba/cuda/tests/nocuda/test_dummyarray.py +3 -0
  271. numba_cuda/numba/cuda/tests/nocuda/test_function_resolution.py +3 -0
  272. numba_cuda/numba/cuda/tests/nocuda/test_import.py +4 -1
  273. numba_cuda/numba/cuda/tests/nocuda/test_library_lookup.py +3 -0
  274. numba_cuda/numba/cuda/tests/nocuda/test_nvvm.py +3 -0
  275. numba_cuda/numba/cuda/tests/nrt/__init__.py +3 -0
  276. numba_cuda/numba/cuda/tests/nrt/test_nrt.py +5 -2
  277. numba_cuda/numba/cuda/tests/nrt/test_nrt_refct.py +4 -1
  278. numba_cuda/numba/cuda/tests/support.py +755 -0
  279. numba_cuda/numba/cuda/tests/test_binary_generation/Makefile +6 -3
  280. numba_cuda/numba/cuda/tests/test_binary_generation/generate_raw_ltoir.py +6 -2
  281. numba_cuda/numba/cuda/tests/test_binary_generation/nrt_extern.cu +5 -0
  282. numba_cuda/numba/cuda/tests/test_binary_generation/test_device_functions.cu +5 -0
  283. numba_cuda/numba/cuda/tests/test_binary_generation/undefined_extern.cu +5 -0
  284. numba_cuda/numba/cuda/types.py +3 -0
  285. numba_cuda/numba/cuda/typing/__init__.py +11 -0
  286. numba_cuda/numba/cuda/typing/templates.py +1448 -0
  287. numba_cuda/numba/cuda/ufuncs.py +3 -0
  288. numba_cuda/numba/cuda/utils.py +3 -0
  289. numba_cuda/numba/cuda/vector_types.py +6 -3
  290. numba_cuda/numba/cuda/vectorizers.py +3 -0
  291. {numba_cuda-0.18.1.dist-info → numba_cuda-0.19.1.dist-info}/METADATA +25 -29
  292. numba_cuda-0.19.1.dist-info/RECORD +302 -0
  293. {numba_cuda-0.18.1.dist-info → numba_cuda-0.19.1.dist-info}/licenses/LICENSE +1 -0
  294. numba_cuda-0.19.1.dist-info/licenses/LICENSE.numba +24 -0
  295. numba_cuda/numba/cuda/include/11/cuda_bf16.h +0 -3749
  296. numba_cuda/numba/cuda/include/11/cuda_bf16.hpp +0 -2683
  297. numba_cuda/numba/cuda/include/11/cuda_fp16.h +0 -3794
  298. numba_cuda/numba/cuda/include/11/cuda_fp16.hpp +0 -2614
  299. numba_cuda-0.18.1.dist-info/RECORD +0 -296
  300. {numba_cuda-0.18.1.dist-info → numba_cuda-0.19.1.dist-info}/WHEEL +0 -0
  301. {numba_cuda-0.18.1.dist-info → numba_cuda-0.19.1.dist-info}/top_level.txt +0 -0
@@ -1,9 +1,13 @@
1
- from numba.tests.support import override_config, captured_stdout
1
+ # SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
+ # SPDX-License-Identifier: BSD-2-Clause
3
+
4
+ from numba.cuda.tests.support import override_config, captured_stdout
2
5
  from numba.cuda.testing import skip_on_cudasim
3
6
  from numba import cuda
4
7
  from numba.core import types
5
8
  from numba.cuda.testing import CUDATestCase
6
9
  import itertools
10
+ import numpy as np
7
11
  import re
8
12
  import unittest
9
13
 
@@ -403,6 +407,24 @@ class TestCudaDebugInfo(CUDATestCase):
403
407
  match = re.compile(pat6).search(llvm_ir)
404
408
  self.assertIsNotNone(match, msg=llvm_ir)
405
409
 
410
+ def test_union_debug(self):
411
+ @cuda.jit("void(u8, int64[::1])", debug=True, opt=False)
412
+ def a_union_use_case(arg, results):
413
+ foo = 1
414
+ foo = arg
415
+ if foo < 1:
416
+ foo = 2
417
+ return
418
+ bar = foo == 0
419
+ results[0] = 1 if not bar else 0
420
+
421
+ with captured_stdout() as out:
422
+ results = cuda.to_device(np.zeros(16, dtype=np.int64))
423
+ a_union_use_case[1, 1](100, results)
424
+ print(results.copy_to_host())
425
+ expected = "[1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]"
426
+ self.assertIn(expected, out.getvalue())
427
+
406
428
  def test_DW_LANG(self):
407
429
  @cuda.jit(debug=True)
408
430
  def foo():
@@ -501,289 +523,6 @@ class TestCudaDebugInfo(CUDATestCase):
501
523
  ir = foo.inspect_llvm()[sig]
502
524
  self.assertFileCheckMatches(ir, foo.__doc__)
503
525
 
504
- def test_DITypes(self):
505
- """Tests that DITypes are emitted for the types used in the kernel."""
506
- sig = (
507
- types.float32,
508
- types.float64,
509
- types.int8,
510
- types.int16,
511
- types.int32,
512
- types.int64,
513
- types.uint8,
514
- types.uint16,
515
- types.uint32,
516
- types.uint64,
517
- types.complex64,
518
- types.complex128,
519
- )
520
-
521
- @cuda.jit(sig, debug=True)
522
- def foo(a, b, c, d, e, f, g, h, i, j, k, l):
523
- """
524
- CHECK: [[DBG1:.+]] = !DIBasicType(encoding: DW_ATE_boolean, name: "i8", size: 8)
525
- CHECK: [[DBG2:.+]] = !DIDerivedType(
526
- CHECK-SAME: baseType: [[DBG1]]
527
- CHECK-SAME: size: 64
528
- CHECK-SAME: tag: DW_TAG_pointer_type
529
- CHECK: [[DBG3:.+]] = !DIDerivedType(
530
- CHECK-SAME: baseType: [[DBG2]]
531
- CHECK-SAME: size: 64
532
- CHECK-SAME: tag: DW_TAG_pointer_type
533
- CHECK: [[DBG4:.+]] = !DIBasicType(encoding: DW_ATE_float, name: "float32", size: 32)
534
- CHECK: [[DBG5:.+]] = !DIBasicType(encoding: DW_ATE_float, name: "float64", size: 64)
535
- CHECK: [[DBG6:.+]] = !DIBasicType(encoding: DW_ATE_signed, name: "int8", size: 8)
536
- CHECK: [[DBG7:.+]] = !DIBasicType(encoding: DW_ATE_signed, name: "int16", size: 16)
537
- CHECK: [[DBG8:.+]] = !DIBasicType(encoding: DW_ATE_signed, name: "int32", size: 32)
538
- CHECK: [[DBG9:.+]] = !DIBasicType(encoding: DW_ATE_signed, name: "int64", size: 64)
539
- CHECK: [[DBG10:.+]] = !DIBasicType(encoding: DW_ATE_unsigned, name: "uint8", size: 8)
540
- CHECK: [[DBG11:.+]] = !DIBasicType(encoding: DW_ATE_unsigned, name: "uint16", size: 16)
541
- CHECK: [[DBG12:.+]] = !DIBasicType(encoding: DW_ATE_unsigned, name: "uint32", size: 32)
542
- CHECK: [[DBG13:.+]] = !DIBasicType(encoding: DW_ATE_unsigned, name: "uint64", size: 64)
543
- CHECK: [[DBG14:.+]] = !DIBasicType(encoding: DW_ATE_float, name: "float", size: 32)
544
- CHECK: [[DBG15:.+]] = !DIDerivedType(
545
- CHECK-SAME: baseType: [[DBG14]]
546
- CHECK-SAME: name: "real"
547
- CHECK-SAME: offset: 0
548
- CHECK-SAME: size: 32
549
- CHECK-SAME: tag: DW_TAG_member
550
- CHECK: [[DBG16:.+]] = !DIBasicType(encoding: DW_ATE_float, name: "float", size: 32)
551
- CHECK: [[DBG17:.+]] = !DIDerivedType(
552
- CHECK-SAME: baseType: [[DBG16]]
553
- CHECK-SAME: name: "imag"
554
- CHECK-SAME: offset: 32
555
- CHECK-SAME: size: 32
556
- CHECK-SAME: tag: DW_TAG_member
557
- CHECK: [[DBG18:.+]] = !{ [[DBG15]], [[DBG17]] }
558
- CHECK: [[DBG19:.+]] = distinct !DICompositeType(
559
- CHECK-SAME: elements: [[DBG18]]
560
- CHECK-SAME: name: "complex64 ({float, float})"
561
- CHECK-SAME: size: 64
562
- CHECK-SAME: tag: DW_TAG_structure_type
563
- CHECK: [[DBG20:.+]] = !DIBasicType(encoding: DW_ATE_float, name: "double", size: 64)
564
- CHECK: [[DBG21:.+]] = !DIDerivedType(
565
- CHECK-SAME: baseType: [[DBG20]]
566
- CHECK-SAME: name: "real"
567
- CHECK-SAME: offset: 0
568
- CHECK-SAME: size: 64
569
- CHECK-SAME: tag: DW_TAG_member
570
- CHECK: [[DBG22:.+]] = !DIBasicType(encoding: DW_ATE_float, name: "double", size: 64)
571
- CHECK: [[DBG23:.+]] = !DIDerivedType(
572
- CHECK-SAME: baseType: [[DBG22]]
573
- CHECK-SAME: name: "imag"
574
- CHECK-SAME: offset: 64
575
- CHECK-SAME: size: 64
576
- CHECK-SAME: tag: DW_TAG_member
577
- CHECK: [[DBG24:.+]] = !{ [[DBG21]], [[DBG23]] }
578
- CHECK: [[DBG25:.+]] = distinct !DICompositeType(
579
- CHECK-SAME: elements: [[DBG24]]
580
- CHECK-SAME: name: "complex128 ({double, double})"
581
- CHECK-SAME: size: 128
582
- CHECK-SAME: tag: DW_TAG_structure_type
583
- CHECK: [[DBG32:.+]] = !DIBasicType(encoding: DW_ATE_float, name: "float32", size: 32)
584
- CHECK: [[DBG33:.+]] = !DILocalVariable(
585
- CHECK-SAME: name: "a"
586
- CHECK-SAME: type: [[DBG32]]
587
- CHECK: [[DBG34:.+]] = !DIExpression()
588
- CHECK: [[DBG35:.+]] = !DIBasicType(encoding: DW_ATE_float, name: "float64", size: 64)
589
- CHECK: [[DBG36:.+]] = !DILocalVariable(
590
- CHECK-SAME: name: "b"
591
- CHECK-SAME: type: [[DBG35]]
592
- CHECK: [[DBG37:.+]] = !DIBasicType(encoding: DW_ATE_signed, name: "int8", size: 8)
593
- CHECK: [[DBG38:.+]] = !DILocalVariable(
594
- CHECK-SAME: name: "c"
595
- CHECK-SAME: type: [[DBG37]]
596
- CHECK: [[DBG39:.+]] = !DIBasicType(encoding: DW_ATE_signed, name: "int16", size: 16)
597
- CHECK: [[DBG40:.+]] = !DILocalVariable(
598
- CHECK-SAME: name: "d"
599
- CHECK-SAME: type: [[DBG39]]
600
- CHECK: [[DBG41:.+]] = !DIBasicType(encoding: DW_ATE_signed, name: "int32", size: 32)
601
- CHECK: [[DBG42:.+]] = !DILocalVariable(
602
- CHECK-SAME: name: "e"
603
- CHECK-SAME: type: [[DBG41]]
604
- CHECK: [[DBG43:.+]] = !DIBasicType(encoding: DW_ATE_signed, name: "int64", size: 64)
605
- CHECK: [[DBG44:.+]] = !DILocalVariable(
606
- CHECK-SAME: name: "f"
607
- CHECK-SAME: type: [[DBG43]]
608
- CHECK: [[DBG45:.+]] = !DIBasicType(encoding: DW_ATE_unsigned, name: "uint8", size: 8)
609
- CHECK: [[DBG46:.+]] = !DILocalVariable(
610
- CHECK-SAME: name: "g"
611
- CHECK-SAME: type: [[DBG45]]
612
- CHECK: [[DBG47:.+]] = !DIBasicType(encoding: DW_ATE_unsigned, name: "uint16", size: 16)
613
- CHECK: [[DBG48:.+]] = !DILocalVariable(
614
- CHECK-SAME: name: "h"
615
- CHECK-SAME: type: [[DBG47]]
616
- CHECK: [[DBG49:.+]] = !DIBasicType(encoding: DW_ATE_unsigned, name: "uint32", size: 32)
617
- CHECK: [[DBG50:.+]] = !DILocalVariable(
618
- CHECK-SAME: name: "i"
619
- CHECK-SAME: type: [[DBG49]]
620
- CHECK: [[DBG51:.+]] = !DIBasicType(encoding: DW_ATE_unsigned, name: "uint64", size: 64)
621
- CHECK: [[DBG52:.+]] = !DILocalVariable(
622
- CHECK-SAME: name: "j"
623
- CHECK-SAME: type: [[DBG51]]
624
- CHECK: [[DBG53:.+]] = !DIBasicType(encoding: DW_ATE_float, name: "float", size: 32)
625
- CHECK: [[DBG54:.+]] = !DIDerivedType(
626
- CHECK-SAME: baseType: [[DBG53]]
627
- CHECK-SAME: name: "real"
628
- CHECK-SAME: offset: 0
629
- CHECK-SAME: size: 32
630
- CHECK-SAME: tag: DW_TAG_member
631
- CHECK: [[DBG55:.+]] = !DIBasicType(encoding: DW_ATE_float, name: "float", size: 32)
632
- CHECK: [[DBG56:.+]] = !DIDerivedType(
633
- CHECK-SAME: baseType: [[DBG55]]
634
- CHECK-SAME: name: "imag"
635
- CHECK-SAME: offset: 32
636
- CHECK-SAME: size: 32
637
- CHECK-SAME: tag: DW_TAG_member
638
- CHECK: [[DBG57:.+]] = !{ [[DBG54]], [[DBG56]] }
639
- CHECK: [[DBG58:.+]] = distinct !DICompositeType(
640
- CHECK-SAME: elements: [[DBG57]]
641
- CHECK-SAME: name: "complex64 ({float, float})"
642
- CHECK-SAME: size: 64
643
- CHECK-SAME: tag: DW_TAG_structure_type
644
- CHECK: [[DBG59:.+]] = !DILocalVariable(
645
- CHECK-SAME: name: "k"
646
- CHECK-SAME: type: [[DBG58]]
647
- CHECK: [[DBG60:.+]] = !DIBasicType(encoding: DW_ATE_float, name: "double", size: 64)
648
- CHECK: [[DBG61:.+]] = !DIDerivedType(
649
- CHECK-SAME: baseType: [[DBG60]]
650
- CHECK-SAME: name: "real"
651
- CHECK-SAME: offset: 0
652
- CHECK-SAME: size: 64
653
- CHECK-SAME: tag: DW_TAG_member
654
- CHECK: [[DBG62:.+]] = !DIBasicType(encoding: DW_ATE_float, name: "double", size: 64)
655
- CHECK: [[DBG63:.+]] = !DIDerivedType(
656
- CHECK-SAME: baseType: [[DBG62]]
657
- CHECK-SAME: name: "imag"
658
- CHECK-SAME: offset: 64
659
- CHECK-SAME: size: 64
660
- CHECK-SAME: tag: DW_TAG_member
661
- CHECK: [[DBG64:.+]] = !{ [[DBG61]], [[DBG63]] }
662
- CHECK: [[DBG65:.+]] = distinct !DICompositeType(
663
- CHECK-SAME: elements: [[DBG64]]
664
- CHECK-SAME: name: "complex128 ({double, double})"
665
- CHECK-SAME: size: 128
666
- CHECK-SAME: tag: DW_TAG_structure_type
667
- CHECK: [[DBG66:.+]] = !DILocalVariable(
668
- CHECK-SAME: name: "l"
669
- CHECK-SAME: type: [[DBG65]]
670
- """
671
- pass
672
-
673
- ir = foo.inspect_llvm()[sig]
674
- self.assertFileCheckMatches(ir, foo.__doc__)
675
-
676
- def test_arrays(self):
677
- """Tests that arrays are emitted as DIBasicType."""
678
- sig = (types.float32[::1],)
679
-
680
- @cuda.jit(sig, debug=True)
681
- def foo(a):
682
- """
683
- CHECK: distinct !DICompileUnit
684
- CHECK: distinct !DISubprogram
685
- CHECK: [[DBG127:.+]] = !DIBasicType(encoding: DW_ATE_boolean, name: "i8", size: 8)
686
- CHECK: [[DBG128:.+]] = !DIDerivedType(
687
- CHECK-SAME: baseType: [[DBG127]]
688
- CHECK-SAME: size: 64
689
- CHECK-SAME: tag: DW_TAG_pointer_type
690
- CHECK-SAME: )
691
- CHECK: [[DBG129:.+]] = !DIDerivedType(
692
- CHECK-SAME: baseType: [[DBG128]]
693
- CHECK-SAME: name: "meminfo"
694
- CHECK-SAME: offset: 0
695
- CHECK-SAME: size: 64
696
- CHECK-SAME: tag: DW_TAG_member
697
- CHECK-SAME: )
698
- CHECK: [[DBG130:.+]] = !DIBasicType(encoding: DW_ATE_boolean, name: "i8", size: 8)
699
- CHECK: [[DBG131:.+]] = !DIDerivedType(
700
- CHECK-SAME: baseType: [[DBG130]]
701
- CHECK-SAME: size: 64
702
- CHECK-SAME: tag: DW_TAG_pointer_type
703
- CHECK-SAME: )
704
- CHECK: [[DBG132:.+]] = !DIDerivedType(
705
- CHECK-SAME: baseType: [[DBG131]]
706
- CHECK-SAME: name: "parent"
707
- CHECK-SAME: offset: 64
708
- CHECK-SAME: size: 64
709
- CHECK-SAME: tag: DW_TAG_member
710
- CHECK-SAME: )
711
- CHECK: [[DBG133:.+]] = !DIBasicType(encoding: DW_ATE_signed, name: "int64", size: 64)
712
- CHECK: [[DBG134:.+]] = !DIDerivedType(
713
- CHECK-SAME: baseType: [[DBG133]]
714
- CHECK-SAME: name: "nitems"
715
- CHECK-SAME: offset: 128
716
- CHECK-SAME: size: 64
717
- CHECK-SAME: tag: DW_TAG_member
718
- CHECK-SAME: )
719
- CHECK: [[DBG135:.+]] = !DIBasicType(encoding: DW_ATE_signed, name: "int64", size: 64)
720
- CHECK: [[DBG136:.+]] = !DIDerivedType(
721
- CHECK-SAME: baseType: [[DBG135]]
722
- CHECK-SAME: name: "itemsize"
723
- CHECK-SAME: offset: 192
724
- CHECK-SAME: size: 64
725
- CHECK-SAME: tag: DW_TAG_member
726
- CHECK-SAME: )
727
- CHECK: [[DBG137:.+]] = !DIBasicType(encoding: DW_ATE_float, name: "float32", size: 32)
728
- CHECK: [[DBG138:.+]] = !DIDerivedType(
729
- CHECK-SAME: baseType: [[DBG137]]
730
- CHECK-SAME: size: 64
731
- CHECK-SAME: tag: DW_TAG_pointer_type
732
- CHECK-SAME: )
733
- CHECK: [[DBG139:.+]] = !DIDerivedType(
734
- CHECK-SAME: baseType: [[DBG138]]
735
- CHECK-SAME: name: "data"
736
- CHECK-SAME: offset: 256
737
- CHECK-SAME: size: 64
738
- CHECK-SAME: tag: DW_TAG_member
739
- CHECK-SAME: )
740
- CHECK: [[DBG140:.+]] = !DIBasicType(encoding: DW_ATE_unsigned, name: "i64", size: 64)
741
- CHECK: [[DBG141:.+]] = !DICompositeType(
742
- CHECK-SAME: baseType: [[DBG140]]
743
- CHECK-SAME: identifier: "[1 x i64]"
744
- CHECK-SAME: name: "UniTuple(int64 x 1) ([1 x i64])"
745
- CHECK-SAME: tag: DW_TAG_array_type
746
- CHECK-SAME: )
747
- CHECK: [[DBG142:.+]] = !DIDerivedType(
748
- CHECK-SAME: baseType: [[DBG141]]
749
- CHECK-SAME: name: "shape"
750
- CHECK-SAME: offset: 320
751
- CHECK-SAME: size: 64
752
- CHECK-SAME: tag: DW_TAG_member
753
- CHECK-SAME: )
754
- CHECK: [[DBG143:.+]] = !DIBasicType(encoding: DW_ATE_unsigned, name: "i64", size: 64)
755
- CHECK: [[DBG144:.+]] = !DICompositeType(
756
- CHECK-SAME: baseType: [[DBG143]]
757
- CHECK-SAME: identifier: "[1 x i64]"
758
- CHECK-SAME: name: "UniTuple(int64 x 1) ([1 x i64])"
759
- CHECK-SAME: size: 64
760
- CHECK-SAME: tag: DW_TAG_array_type
761
- CHECK-SAME: )
762
- CHECK: [[DBG145:.+]] = !DIDerivedType(
763
- CHECK-SAME: baseType: [[DBG144]]
764
- CHECK-SAME: name: "strides"
765
- CHECK-SAME: offset: 384
766
- CHECK-SAME: size: 64
767
- CHECK-SAME: tag: DW_TAG_member
768
- CHECK-SAME: )
769
- CHECK: [[DBG146:.+]] = !{ [[DBG129]], [[DBG132]], [[DBG134]], [[DBG136]], [[DBG139]], [[DBG142]], [[DBG145]] }
770
- CHECK: [[DBG147:.+]] = distinct !DICompositeType(
771
- CHECK-SAME: elements: [[DBG146]]
772
- CHECK-SAME: identifier: "{i8*, i8*, i64, i64, float*, [1 x i64], [1 x i64]}"
773
- CHECK-SAME: name: "array(float32, 1d, C) ({i8*, i8*, i64, i64, float*, [1 x i64], [1 x i64]})"
774
- CHECK-SAME: size: 448
775
- CHECK-SAME: tag: DW_TAG_structure_type
776
- CHECK-SAME: )
777
- CHECK: !DILocalVariable(
778
- CHECK-SAME: name: "a"
779
- CHECK-SAME: type: [[DBG147]]
780
- CHECK-SAME: )
781
- """
782
- pass
783
-
784
- ir = foo.inspect_llvm()[sig]
785
- self.assertFileCheckMatches(ir, foo.__doc__)
786
-
787
526
 
788
527
  if __name__ == "__main__":
789
528
  unittest.main()