numba-cuda 0.19.0__py3-none-any.whl → 0.20.0__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.
- _numba_cuda_redirector.pth +3 -0
- _numba_cuda_redirector.py +3 -0
- numba_cuda/VERSION +1 -1
- numba_cuda/__init__.py +2 -1
- numba_cuda/_version.py +2 -13
- numba_cuda/numba/cuda/__init__.py +4 -1
- numba_cuda/numba/cuda/_internal/cuda_bf16.py +12708 -1469
- numba_cuda/numba/cuda/_internal/cuda_fp16.py +2656 -8769
- numba_cuda/numba/cuda/api.py +9 -1
- numba_cuda/numba/cuda/api_util.py +3 -0
- numba_cuda/numba/cuda/args.py +3 -0
- numba_cuda/numba/cuda/bf16.py +288 -2
- numba_cuda/numba/cuda/cg.py +3 -0
- numba_cuda/numba/cuda/cgutils.py +5 -2
- numba_cuda/numba/cuda/cloudpickle/__init__.py +21 -0
- numba_cuda/numba/cuda/cloudpickle/cloudpickle.py +1598 -0
- numba_cuda/numba/cuda/cloudpickle/cloudpickle_fast.py +17 -0
- numba_cuda/numba/cuda/codegen.py +4 -1
- numba_cuda/numba/cuda/compiler.py +376 -30
- numba_cuda/numba/cuda/core/analysis.py +319 -0
- numba_cuda/numba/cuda/core/annotations/__init__.py +0 -0
- numba_cuda/numba/cuda/core/annotations/type_annotations.py +304 -0
- numba_cuda/numba/cuda/core/base.py +1289 -0
- numba_cuda/numba/cuda/core/bytecode.py +727 -0
- numba_cuda/numba/cuda/core/caching.py +5 -2
- numba_cuda/numba/cuda/core/callconv.py +3 -0
- numba_cuda/numba/cuda/core/codegen.py +3 -0
- numba_cuda/numba/cuda/core/compiler.py +9 -14
- numba_cuda/numba/cuda/core/compiler_machinery.py +497 -0
- numba_cuda/numba/cuda/core/config.py +747 -0
- numba_cuda/numba/cuda/core/consts.py +124 -0
- numba_cuda/numba/cuda/core/cpu.py +370 -0
- numba_cuda/numba/cuda/core/environment.py +68 -0
- numba_cuda/numba/cuda/core/event.py +511 -0
- numba_cuda/numba/cuda/core/funcdesc.py +330 -0
- numba_cuda/numba/cuda/core/inline_closurecall.py +1889 -0
- numba_cuda/numba/cuda/core/interpreter.py +52 -27
- numba_cuda/numba/cuda/core/ir_utils.py +17 -29
- numba_cuda/numba/cuda/core/options.py +262 -0
- numba_cuda/numba/cuda/core/postproc.py +249 -0
- numba_cuda/numba/cuda/core/pythonapi.py +1868 -0
- numba_cuda/numba/cuda/core/rewrites/__init__.py +26 -0
- numba_cuda/numba/cuda/core/rewrites/ir_print.py +90 -0
- numba_cuda/numba/cuda/core/rewrites/registry.py +104 -0
- numba_cuda/numba/cuda/core/rewrites/static_binop.py +40 -0
- numba_cuda/numba/cuda/core/rewrites/static_getitem.py +187 -0
- numba_cuda/numba/cuda/core/rewrites/static_raise.py +98 -0
- numba_cuda/numba/cuda/core/sigutils.py +3 -0
- numba_cuda/numba/cuda/core/ssa.py +496 -0
- numba_cuda/numba/cuda/core/targetconfig.py +329 -0
- numba_cuda/numba/cuda/core/tracing.py +231 -0
- numba_cuda/numba/cuda/core/transforms.py +952 -0
- numba_cuda/numba/cuda/core/typed_passes.py +741 -7
- numba_cuda/numba/cuda/core/typeinfer.py +1948 -0
- numba_cuda/numba/cuda/core/unsafe/__init__.py +0 -0
- numba_cuda/numba/cuda/core/unsafe/bytes.py +67 -0
- numba_cuda/numba/cuda/core/unsafe/eh.py +66 -0
- numba_cuda/numba/cuda/core/unsafe/refcount.py +98 -0
- numba_cuda/numba/cuda/core/untyped_passes.py +1983 -0
- numba_cuda/numba/cuda/cpython/cmathimpl.py +560 -0
- numba_cuda/numba/cuda/cpython/mathimpl.py +499 -0
- numba_cuda/numba/cuda/cpython/numbers.py +1474 -0
- numba_cuda/numba/cuda/cuda_paths.py +425 -246
- numba_cuda/numba/cuda/cudadecl.py +4 -1
- numba_cuda/numba/cuda/cudadrv/__init__.py +4 -1
- numba_cuda/numba/cuda/cudadrv/devicearray.py +5 -1
- numba_cuda/numba/cuda/cudadrv/devices.py +3 -0
- numba_cuda/numba/cuda/cudadrv/driver.py +14 -140
- numba_cuda/numba/cuda/cudadrv/drvapi.py +3 -0
- numba_cuda/numba/cuda/cudadrv/dummyarray.py +114 -24
- numba_cuda/numba/cuda/cudadrv/enums.py +3 -0
- numba_cuda/numba/cuda/cudadrv/error.py +4 -0
- numba_cuda/numba/cuda/cudadrv/libs.py +8 -5
- numba_cuda/numba/cuda/cudadrv/linkable_code.py +3 -0
- numba_cuda/numba/cuda/cudadrv/mappings.py +4 -1
- numba_cuda/numba/cuda/cudadrv/ndarray.py +3 -0
- numba_cuda/numba/cuda/cudadrv/nvrtc.py +22 -8
- numba_cuda/numba/cuda/cudadrv/nvvm.py +4 -4
- numba_cuda/numba/cuda/cudadrv/rtapi.py +3 -0
- numba_cuda/numba/cuda/cudadrv/runtime.py +4 -1
- numba_cuda/numba/cuda/cudaimpl.py +8 -1
- numba_cuda/numba/cuda/cudamath.py +3 -0
- numba_cuda/numba/cuda/debuginfo.py +88 -2
- numba_cuda/numba/cuda/decorators.py +6 -3
- numba_cuda/numba/cuda/descriptor.py +6 -4
- numba_cuda/numba/cuda/device_init.py +3 -0
- numba_cuda/numba/cuda/deviceufunc.py +69 -2
- numba_cuda/numba/cuda/dispatcher.py +21 -39
- numba_cuda/numba/cuda/errors.py +10 -0
- numba_cuda/numba/cuda/extending.py +3 -0
- numba_cuda/numba/cuda/flags.py +143 -1
- numba_cuda/numba/cuda/fp16.py +3 -2
- numba_cuda/numba/cuda/include/13/cuda_bf16.h +5118 -0
- numba_cuda/numba/cuda/include/13/cuda_bf16.hpp +3865 -0
- numba_cuda/numba/cuda/include/13/cuda_fp16.h +5363 -0
- numba_cuda/numba/cuda/include/13/cuda_fp16.hpp +3483 -0
- numba_cuda/numba/cuda/initialize.py +4 -0
- numba_cuda/numba/cuda/intrinsic_wrapper.py +3 -0
- numba_cuda/numba/cuda/intrinsics.py +3 -0
- numba_cuda/numba/cuda/itanium_mangler.py +3 -0
- numba_cuda/numba/cuda/kernels/__init__.py +2 -0
- numba_cuda/numba/cuda/kernels/reduction.py +3 -0
- numba_cuda/numba/cuda/kernels/transpose.py +3 -0
- numba_cuda/numba/cuda/libdevice.py +4 -0
- numba_cuda/numba/cuda/libdevicedecl.py +3 -0
- numba_cuda/numba/cuda/libdevicefuncs.py +3 -0
- numba_cuda/numba/cuda/libdeviceimpl.py +3 -0
- numba_cuda/numba/cuda/locks.py +3 -0
- numba_cuda/numba/cuda/lowering.py +59 -159
- numba_cuda/numba/cuda/mathimpl.py +5 -1
- numba_cuda/numba/cuda/memory_management/__init__.py +3 -0
- numba_cuda/numba/cuda/memory_management/memsys.cu +5 -0
- numba_cuda/numba/cuda/memory_management/memsys.cuh +5 -0
- numba_cuda/numba/cuda/memory_management/nrt.cu +5 -0
- numba_cuda/numba/cuda/memory_management/nrt.cuh +5 -0
- numba_cuda/numba/cuda/memory_management/nrt.py +48 -18
- numba_cuda/numba/cuda/misc/findlib.py +75 -0
- numba_cuda/numba/cuda/models.py +12 -1
- numba_cuda/numba/cuda/np/npdatetime_helpers.py +217 -0
- numba_cuda/numba/cuda/np/npyfuncs.py +1807 -0
- numba_cuda/numba/cuda/np/numpy_support.py +553 -0
- numba_cuda/numba/cuda/np/ufunc/ufuncbuilder.py +59 -0
- numba_cuda/numba/cuda/nvvmutils.py +4 -1
- numba_cuda/numba/cuda/printimpl.py +15 -1
- numba_cuda/numba/cuda/random.py +4 -1
- numba_cuda/numba/cuda/reshape_funcs.cu +5 -0
- numba_cuda/numba/cuda/serialize.py +4 -1
- numba_cuda/numba/cuda/simulator/__init__.py +4 -1
- numba_cuda/numba/cuda/simulator/_internal/__init__.py +3 -0
- numba_cuda/numba/cuda/simulator/_internal/cuda_bf16.py +2 -0
- numba_cuda/numba/cuda/simulator/api.py +4 -1
- numba_cuda/numba/cuda/simulator/bf16.py +3 -0
- numba_cuda/numba/cuda/simulator/compiler.py +7 -0
- numba_cuda/numba/cuda/simulator/cudadrv/__init__.py +3 -0
- numba_cuda/numba/cuda/simulator/cudadrv/devicearray.py +4 -1
- numba_cuda/numba/cuda/simulator/cudadrv/devices.py +3 -0
- numba_cuda/numba/cuda/simulator/cudadrv/driver.py +3 -0
- numba_cuda/numba/cuda/simulator/cudadrv/drvapi.py +3 -0
- numba_cuda/numba/cuda/simulator/cudadrv/dummyarray.py +3 -0
- numba_cuda/numba/cuda/simulator/cudadrv/error.py +4 -0
- numba_cuda/numba/cuda/simulator/cudadrv/libs.py +4 -0
- numba_cuda/numba/cuda/simulator/cudadrv/linkable_code.py +4 -0
- numba_cuda/numba/cuda/simulator/cudadrv/nvrtc.py +3 -0
- numba_cuda/numba/cuda/simulator/cudadrv/nvvm.py +3 -0
- numba_cuda/numba/cuda/simulator/cudadrv/runtime.py +3 -0
- numba_cuda/numba/cuda/simulator/dispatcher.py +4 -0
- numba_cuda/numba/cuda/simulator/kernel.py +3 -0
- numba_cuda/numba/cuda/simulator/kernelapi.py +4 -1
- numba_cuda/numba/cuda/simulator/memory_management/__init__.py +3 -0
- numba_cuda/numba/cuda/simulator/memory_management/nrt.py +17 -2
- numba_cuda/numba/cuda/simulator/reduction.py +3 -0
- numba_cuda/numba/cuda/simulator/vector_types.py +3 -0
- numba_cuda/numba/cuda/simulator_init.py +3 -0
- numba_cuda/numba/cuda/stubs.py +3 -0
- numba_cuda/numba/cuda/target.py +38 -17
- numba_cuda/numba/cuda/testing.py +7 -19
- numba_cuda/numba/cuda/tests/__init__.py +4 -1
- numba_cuda/numba/cuda/tests/cloudpickle_main_class.py +9 -0
- numba_cuda/numba/cuda/tests/complex_usecases.py +3 -0
- numba_cuda/numba/cuda/tests/core/serialize_usecases.py +3 -0
- numba_cuda/numba/cuda/tests/core/test_itanium_mangler.py +3 -0
- numba_cuda/numba/cuda/tests/core/test_serialize.py +7 -4
- numba_cuda/numba/cuda/tests/cudadrv/__init__.py +3 -0
- numba_cuda/numba/cuda/tests/cudadrv/test_array_attr.py +3 -0
- numba_cuda/numba/cuda/tests/cudadrv/test_context_stack.py +3 -0
- numba_cuda/numba/cuda/tests/cudadrv/test_cuda_array_slicing.py +3 -0
- numba_cuda/numba/cuda/tests/cudadrv/test_cuda_auto_context.py +3 -0
- numba_cuda/numba/cuda/tests/cudadrv/test_cuda_devicerecord.py +4 -1
- numba_cuda/numba/cuda/tests/cudadrv/test_cuda_driver.py +3 -0
- numba_cuda/numba/cuda/tests/cudadrv/test_cuda_libraries.py +4 -1
- numba_cuda/numba/cuda/tests/cudadrv/test_cuda_memory.py +3 -0
- numba_cuda/numba/cuda/tests/cudadrv/test_cuda_ndarray.py +3 -0
- numba_cuda/numba/cuda/tests/cudadrv/test_deallocations.py +4 -1
- numba_cuda/numba/cuda/tests/cudadrv/test_detect.py +9 -3
- numba_cuda/numba/cuda/tests/cudadrv/test_emm_plugins.py +4 -1
- numba_cuda/numba/cuda/tests/cudadrv/test_events.py +3 -0
- numba_cuda/numba/cuda/tests/cudadrv/test_host_alloc.py +3 -0
- numba_cuda/numba/cuda/tests/cudadrv/test_init.py +3 -0
- numba_cuda/numba/cuda/tests/cudadrv/test_inline_ptx.py +3 -0
- numba_cuda/numba/cuda/tests/cudadrv/test_is_fp16.py +3 -0
- numba_cuda/numba/cuda/tests/cudadrv/test_linker.py +21 -2
- numba_cuda/numba/cuda/tests/cudadrv/test_managed_alloc.py +3 -0
- numba_cuda/numba/cuda/tests/cudadrv/test_module_callbacks.py +5 -1
- numba_cuda/numba/cuda/tests/cudadrv/test_nvjitlink.py +4 -1
- numba_cuda/numba/cuda/tests/cudadrv/test_nvrtc.py +3 -0
- numba_cuda/numba/cuda/tests/cudadrv/test_nvvm_driver.py +3 -0
- numba_cuda/numba/cuda/tests/cudadrv/test_pinned.py +3 -0
- numba_cuda/numba/cuda/tests/cudadrv/test_profiler.py +3 -0
- numba_cuda/numba/cuda/tests/cudadrv/test_ptds.py +4 -1
- numba_cuda/numba/cuda/tests/cudadrv/test_reset_device.py +3 -0
- numba_cuda/numba/cuda/tests/cudadrv/test_runtime.py +3 -0
- numba_cuda/numba/cuda/tests/cudadrv/test_select_device.py +3 -0
- numba_cuda/numba/cuda/tests/cudadrv/test_streams.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/__init__.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/cache_usecases.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/cache_with_cpu_usecases.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/cg_cache_usecases.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/extensions_usecases.py +4 -1
- numba_cuda/numba/cuda/tests/cudapy/recursion_usecases.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_alignment.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_array.py +5 -1
- numba_cuda/numba/cuda/tests/cudapy/test_array_alignment.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_array_args.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_array_methods.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_atomics.py +4 -1
- numba_cuda/numba/cuda/tests/cudapy/test_bfloat16.py +542 -2
- numba_cuda/numba/cuda/tests/cudapy/test_bfloat16_bindings.py +84 -1
- numba_cuda/numba/cuda/tests/cudapy/test_blackscholes.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_boolean.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_caching.py +4 -3
- numba_cuda/numba/cuda/tests/cudapy/test_casting.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_cffi.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_compiler.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_complex.py +4 -1
- numba_cuda/numba/cuda/tests/cudapy/test_complex_kernel.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_const_string.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_constmem.py +4 -1
- numba_cuda/numba/cuda/tests/cudapy/test_cooperative_groups.py +5 -3
- numba_cuda/numba/cuda/tests/cudapy/test_copy_propagate.py +130 -0
- numba_cuda/numba/cuda/tests/cudapy/test_cuda_array_interface.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_cuda_jit_no_types.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_datetime.py +4 -1
- numba_cuda/numba/cuda/tests/cudapy/test_debug.py +4 -1
- numba_cuda/numba/cuda/tests/cudapy/test_debuginfo.py +314 -3
- numba_cuda/numba/cuda/tests/cudapy/test_debuginfo_types.py +4 -1
- numba_cuda/numba/cuda/tests/cudapy/test_device_func.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_dispatcher.py +4 -1
- numba_cuda/numba/cuda/tests/cudapy/test_enums.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_errors.py +4 -1
- numba_cuda/numba/cuda/tests/cudapy/test_exception.py +4 -1
- numba_cuda/numba/cuda/tests/cudapy/test_extending.py +5 -1
- numba_cuda/numba/cuda/tests/cudapy/test_fastmath.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_forall.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_freevar.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_frexp_ldexp.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_globals.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_gufunc.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_gufunc_scalar.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_gufunc_scheduling.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_idiv.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_inline.py +21 -8
- numba_cuda/numba/cuda/tests/cudapy/test_inspect.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_intrinsics.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_ipc.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_ir_utils.py +13 -37
- numba_cuda/numba/cuda/tests/cudapy/test_iterators.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_lang.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_laplace.py +4 -1
- numba_cuda/numba/cuda/tests/cudapy/test_libdevice.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_lineinfo.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_localmem.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_mandel.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_math.py +4 -1
- numba_cuda/numba/cuda/tests/cudapy/test_matmul.py +4 -1
- numba_cuda/numba/cuda/tests/cudapy/test_minmax.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_montecarlo.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_multigpu.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_multiprocessing.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_multithreads.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_nondet.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_operator.py +4 -1
- numba_cuda/numba/cuda/tests/cudapy/test_optimization.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_overload.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_powi.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_print.py +23 -0
- numba_cuda/numba/cuda/tests/cudapy/test_py2_div_issue.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_random.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_record_dtype.py +4 -1
- numba_cuda/numba/cuda/tests/cudapy/test_recursion.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_reduction.py +4 -1
- numba_cuda/numba/cuda/tests/cudapy/test_retrieve_autoconverted_arrays.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_serialize.py +4 -1
- numba_cuda/numba/cuda/tests/cudapy/test_slicing.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_sm.py +4 -1
- numba_cuda/numba/cuda/tests/cudapy/test_sm_creation.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_ssa.py +453 -0
- numba_cuda/numba/cuda/tests/cudapy/test_stream_api.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_sync.py +4 -1
- numba_cuda/numba/cuda/tests/cudapy/test_transpose.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_typeinfer.py +538 -0
- numba_cuda/numba/cuda/tests/cudapy/test_ufuncs.py +266 -2
- numba_cuda/numba/cuda/tests/cudapy/test_userexc.py +4 -1
- numba_cuda/numba/cuda/tests/cudapy/test_vector_type.py +4 -1
- numba_cuda/numba/cuda/tests/cudapy/test_vectorize.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_vectorize_complex.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_vectorize_decor.py +115 -6
- numba_cuda/numba/cuda/tests/cudapy/test_vectorize_device.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_vectorize_scalar_arg.py +3 -0
- numba_cuda/numba/cuda/tests/cudapy/test_warning.py +4 -1
- numba_cuda/numba/cuda/tests/cudapy/test_warp_ops.py +4 -1
- numba_cuda/numba/cuda/tests/cudasim/__init__.py +3 -0
- numba_cuda/numba/cuda/tests/cudasim/support.py +3 -0
- numba_cuda/numba/cuda/tests/cudasim/test_cudasim_issues.py +3 -0
- numba_cuda/numba/cuda/tests/data/__init__.py +2 -0
- numba_cuda/numba/cuda/tests/data/cta_barrier.cu +5 -0
- numba_cuda/numba/cuda/tests/data/cuda_include.cu +5 -0
- numba_cuda/numba/cuda/tests/data/error.cu +5 -0
- numba_cuda/numba/cuda/tests/data/include/add.cuh +5 -0
- numba_cuda/numba/cuda/tests/data/jitlink.cu +5 -0
- numba_cuda/numba/cuda/tests/data/warn.cu +5 -0
- numba_cuda/numba/cuda/tests/doc_examples/__init__.py +3 -0
- numba_cuda/numba/cuda/tests/doc_examples/ffi/__init__.py +2 -0
- numba_cuda/numba/cuda/tests/doc_examples/ffi/functions.cu +5 -0
- numba_cuda/numba/cuda/tests/doc_examples/ffi/include/mul.cuh +5 -0
- numba_cuda/numba/cuda/tests/doc_examples/ffi/saxpy.cu +5 -0
- numba_cuda/numba/cuda/tests/doc_examples/test_cg.py +3 -2
- numba_cuda/numba/cuda/tests/doc_examples/test_cpointer.py +3 -0
- numba_cuda/numba/cuda/tests/doc_examples/test_cpu_gpu_compat.py +3 -0
- numba_cuda/numba/cuda/tests/doc_examples/test_ffi.py +6 -2
- numba_cuda/numba/cuda/tests/doc_examples/test_laplace.py +3 -2
- numba_cuda/numba/cuda/tests/doc_examples/test_matmul.py +3 -0
- numba_cuda/numba/cuda/tests/doc_examples/test_montecarlo.py +3 -0
- numba_cuda/numba/cuda/tests/doc_examples/test_random.py +3 -0
- numba_cuda/numba/cuda/tests/doc_examples/test_reduction.py +3 -0
- numba_cuda/numba/cuda/tests/doc_examples/test_sessionize.py +3 -2
- numba_cuda/numba/cuda/tests/doc_examples/test_ufunc.py +3 -0
- numba_cuda/numba/cuda/tests/doc_examples/test_vecadd.py +3 -0
- numba_cuda/numba/cuda/tests/enum_usecases.py +3 -0
- numba_cuda/numba/cuda/tests/nocuda/__init__.py +3 -0
- numba_cuda/numba/cuda/tests/nocuda/test_dummyarray.py +3 -0
- numba_cuda/numba/cuda/tests/nocuda/test_function_resolution.py +3 -0
- numba_cuda/numba/cuda/tests/nocuda/test_import.py +6 -1
- numba_cuda/numba/cuda/tests/nocuda/test_library_lookup.py +27 -12
- numba_cuda/numba/cuda/tests/nocuda/test_nvvm.py +3 -0
- numba_cuda/numba/cuda/tests/nrt/__init__.py +3 -0
- numba_cuda/numba/cuda/tests/nrt/test_nrt.py +5 -1
- numba_cuda/numba/cuda/tests/nrt/test_nrt_refct.py +3 -0
- numba_cuda/numba/cuda/tests/support.py +58 -15
- numba_cuda/numba/cuda/tests/test_binary_generation/Makefile +3 -0
- numba_cuda/numba/cuda/tests/test_binary_generation/generate_raw_ltoir.py +2 -1
- numba_cuda/numba/cuda/tests/test_binary_generation/nrt_extern.cu +5 -0
- numba_cuda/numba/cuda/tests/test_binary_generation/test_device_functions.cu +5 -0
- numba_cuda/numba/cuda/tests/test_binary_generation/undefined_extern.cu +5 -0
- numba_cuda/numba/cuda/tests/test_tracing.py +200 -0
- numba_cuda/numba/cuda/types.py +59 -0
- numba_cuda/numba/cuda/typing/__init__.py +12 -1
- numba_cuda/numba/cuda/typing/cffi_utils.py +55 -0
- numba_cuda/numba/cuda/typing/context.py +751 -0
- numba_cuda/numba/cuda/typing/enumdecl.py +74 -0
- numba_cuda/numba/cuda/typing/npydecl.py +658 -0
- numba_cuda/numba/cuda/typing/templates.py +10 -14
- numba_cuda/numba/cuda/ufuncs.py +6 -3
- numba_cuda/numba/cuda/utils.py +9 -112
- numba_cuda/numba/cuda/vector_types.py +3 -0
- numba_cuda/numba/cuda/vectorizers.py +3 -0
- {numba_cuda-0.19.0.dist-info → numba_cuda-0.20.0.dist-info}/METADATA +6 -2
- numba_cuda-0.20.0.dist-info/RECORD +357 -0
- {numba_cuda-0.19.0.dist-info → numba_cuda-0.20.0.dist-info}/licenses/LICENSE +1 -0
- numba_cuda-0.20.0.dist-info/licenses/LICENSE.numba +24 -0
- numba_cuda/numba/cuda/tests/cudadrv/test_mvc.py +0 -57
- numba_cuda-0.19.0.dist-info/RECORD +0 -301
- {numba_cuda-0.19.0.dist-info → numba_cuda-0.20.0.dist-info}/WHEEL +0 -0
- {numba_cuda-0.19.0.dist-info → numba_cuda-0.20.0.dist-info}/top_level.txt +0 -0
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: BSD-2-Clause
|
|
3
|
+
|
|
1
4
|
"""
|
|
2
5
|
Define typing templates
|
|
3
6
|
"""
|
|
@@ -12,14 +15,15 @@ from collections.abc import Sequence
|
|
|
12
15
|
from types import MethodType, FunctionType, MappingProxyType
|
|
13
16
|
|
|
14
17
|
import numba
|
|
15
|
-
from numba.core import types
|
|
18
|
+
from numba.core import types
|
|
16
19
|
from numba.core.errors import (
|
|
17
20
|
TypingError,
|
|
18
21
|
InternalError,
|
|
19
22
|
)
|
|
20
|
-
from numba.core.
|
|
23
|
+
from numba.cuda.core.options import InlineOptions
|
|
21
24
|
from numba.core.typing.templates import Signature as CoreSignature
|
|
22
|
-
from numba.cuda
|
|
25
|
+
from numba.cuda import utils
|
|
26
|
+
from numba.cuda.core import ir_utils, targetconfig
|
|
23
27
|
|
|
24
28
|
# info store for inliner callback functions e.g. cost model
|
|
25
29
|
_inline_info = namedtuple("inline_info", "func_ir typemap calltypes signature")
|
|
@@ -642,7 +646,7 @@ class _OverloadFunctionTemplate(AbstractTemplate):
|
|
|
642
646
|
Type the overloaded function by compiling the appropriate
|
|
643
647
|
implementation for the given args.
|
|
644
648
|
"""
|
|
645
|
-
from numba.core.typed_passes import PreLowerStripPhis
|
|
649
|
+
from numba.cuda.core.typed_passes import PreLowerStripPhis
|
|
646
650
|
|
|
647
651
|
disp, new_args = self._get_impl(args, kws)
|
|
648
652
|
if disp is None:
|
|
@@ -655,8 +659,8 @@ class _OverloadFunctionTemplate(AbstractTemplate):
|
|
|
655
659
|
if not self._inline.is_never_inline:
|
|
656
660
|
# need to run the compiler front end up to type inference to compute
|
|
657
661
|
# a signature
|
|
658
|
-
from numba.core import typed_passes, compiler
|
|
659
|
-
from numba.core.inline_closurecall import InlineWorker
|
|
662
|
+
from numba.cuda.core import typed_passes, compiler
|
|
663
|
+
from numba.cuda.core.inline_closurecall import InlineWorker
|
|
660
664
|
|
|
661
665
|
fcomp = disp._compiler
|
|
662
666
|
flags = compiler.Flags()
|
|
@@ -1356,18 +1360,10 @@ class Registry(object):
|
|
|
1356
1360
|
self.globals = []
|
|
1357
1361
|
|
|
1358
1362
|
def register(self, item):
|
|
1359
|
-
assert issubclass(
|
|
1360
|
-
item,
|
|
1361
|
-
(FunctionTemplate, numba.core.typing.templates.FunctionTemplate),
|
|
1362
|
-
)
|
|
1363
1363
|
self.functions.append(item)
|
|
1364
1364
|
return item
|
|
1365
1365
|
|
|
1366
1366
|
def register_attr(self, item):
|
|
1367
|
-
assert issubclass(
|
|
1368
|
-
item,
|
|
1369
|
-
(AttributeTemplate, numba.core.typing.templates.AttributeTemplate),
|
|
1370
|
-
)
|
|
1371
1367
|
self.attributes.append(item)
|
|
1372
1368
|
return item
|
|
1373
1369
|
|
numba_cuda/numba/cuda/ufuncs.py
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: BSD-2-Clause
|
|
3
|
+
|
|
1
4
|
"""Contains information on how to translate different ufuncs for the CUDA
|
|
2
5
|
target. It is a database of different ufuncs and how each of its loops maps to
|
|
3
6
|
a function that implements the inner kernel of that ufunc (the inner kernel
|
|
@@ -23,9 +26,9 @@ def get_ufunc_info(ufunc_key):
|
|
|
23
26
|
@lru_cache
|
|
24
27
|
def ufunc_db():
|
|
25
28
|
# Imports here are at function scope to avoid circular imports
|
|
26
|
-
from numba.cpython import cmathimpl, mathimpl, numbers
|
|
27
|
-
from numba.np import npyfuncs
|
|
28
|
-
from numba.np.numpy_support import numpy_version
|
|
29
|
+
from numba.cuda.cpython import cmathimpl, mathimpl, numbers
|
|
30
|
+
from numba.cuda.np import npyfuncs
|
|
31
|
+
from numba.cuda.np.numpy_support import numpy_version
|
|
29
32
|
|
|
30
33
|
def np_unary_impl(fn, context, builder, sig, args):
|
|
31
34
|
npyfuncs._check_arity_and_homogeneity(sig, args, 1)
|
numba_cuda/numba/cuda/utils.py
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: BSD-2-Clause
|
|
3
|
+
|
|
1
4
|
import os
|
|
2
5
|
import warnings
|
|
3
6
|
import traceback
|
|
@@ -25,13 +28,16 @@ from inspect import signature as pysignature # noqa: F401
|
|
|
25
28
|
from inspect import Signature as pySignature # noqa: F401
|
|
26
29
|
from inspect import Parameter as pyParameter # noqa: F401
|
|
27
30
|
|
|
28
|
-
from numba.core.config import (
|
|
31
|
+
from numba.cuda.core.config import (
|
|
29
32
|
MACHINE_BITS, # noqa: F401
|
|
30
33
|
DEVELOPER_MODE,
|
|
31
34
|
) # noqa: F401
|
|
32
|
-
from numba.core import types, config
|
|
33
35
|
|
|
34
|
-
from
|
|
36
|
+
from numba.cuda.core import config
|
|
37
|
+
|
|
38
|
+
from collections.abc import Mapping, MutableSet, MutableMapping
|
|
39
|
+
|
|
40
|
+
PYVERSION = config.PYVERSION
|
|
35
41
|
|
|
36
42
|
|
|
37
43
|
def erase_traceback(exc_value):
|
|
@@ -569,115 +575,6 @@ def get_nargs_range(pyfunc):
|
|
|
569
575
|
return min_nargs, max_nargs
|
|
570
576
|
|
|
571
577
|
|
|
572
|
-
def unify_function_types(numba_types):
|
|
573
|
-
"""Return a normalized tuple of Numba function types so that
|
|
574
|
-
|
|
575
|
-
Tuple(numba_types)
|
|
576
|
-
|
|
577
|
-
becomes
|
|
578
|
-
|
|
579
|
-
UniTuple(dtype=<unified function type>, count=len(numba_types))
|
|
580
|
-
|
|
581
|
-
If the above transformation would be incorrect, return the
|
|
582
|
-
original input as given. For instance, if the input tuple contains
|
|
583
|
-
types that are not function or dispatcher type, the transformation
|
|
584
|
-
is considered incorrect.
|
|
585
|
-
"""
|
|
586
|
-
dtype = unified_function_type(numba_types)
|
|
587
|
-
if dtype is None:
|
|
588
|
-
return numba_types
|
|
589
|
-
return (dtype,) * len(numba_types)
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
def unified_function_type(numba_types, require_precise=True):
|
|
593
|
-
"""Returns a unified Numba function type if possible.
|
|
594
|
-
|
|
595
|
-
Parameters
|
|
596
|
-
----------
|
|
597
|
-
numba_types : Sequence of numba Type instances.
|
|
598
|
-
require_precise : bool
|
|
599
|
-
If True, the returned Numba function type must be precise.
|
|
600
|
-
|
|
601
|
-
Returns
|
|
602
|
-
-------
|
|
603
|
-
typ : {numba.core.types.Type, None}
|
|
604
|
-
A unified Numba function type. Or ``None`` when the Numba types
|
|
605
|
-
cannot be unified, e.g. when the ``numba_types`` contains at
|
|
606
|
-
least two different Numba function type instances.
|
|
607
|
-
|
|
608
|
-
If ``numba_types`` contains a Numba dispatcher type, the unified
|
|
609
|
-
Numba function type will be an imprecise ``UndefinedFunctionType``
|
|
610
|
-
instance, or None when ``require_precise=True`` is specified.
|
|
611
|
-
|
|
612
|
-
Specifying ``require_precise=False`` enables unifying imprecise
|
|
613
|
-
Numba dispatcher instances when used in tuples or if-then branches
|
|
614
|
-
when the precise Numba function cannot be determined on the first
|
|
615
|
-
occurrence that is not a call expression.
|
|
616
|
-
"""
|
|
617
|
-
from numba.core.errors import NumbaExperimentalFeatureWarning
|
|
618
|
-
|
|
619
|
-
if not (
|
|
620
|
-
isinstance(numba_types, Sequence)
|
|
621
|
-
and len(numba_types) > 0
|
|
622
|
-
and isinstance(numba_types[0], (types.Dispatcher, types.FunctionType))
|
|
623
|
-
):
|
|
624
|
-
return
|
|
625
|
-
|
|
626
|
-
warnings.warn(
|
|
627
|
-
"First-class function type feature is experimental",
|
|
628
|
-
category=NumbaExperimentalFeatureWarning,
|
|
629
|
-
)
|
|
630
|
-
|
|
631
|
-
mnargs, mxargs = None, None
|
|
632
|
-
dispatchers = set()
|
|
633
|
-
function = None
|
|
634
|
-
undefined_function = None
|
|
635
|
-
|
|
636
|
-
for t in numba_types:
|
|
637
|
-
if isinstance(t, types.Dispatcher):
|
|
638
|
-
mnargs1, mxargs1 = get_nargs_range(t.dispatcher.py_func)
|
|
639
|
-
if mnargs is None:
|
|
640
|
-
mnargs, mxargs = mnargs1, mxargs1
|
|
641
|
-
elif not (mnargs, mxargs) == (mnargs1, mxargs1):
|
|
642
|
-
return
|
|
643
|
-
dispatchers.add(t.dispatcher)
|
|
644
|
-
t = t.dispatcher.get_function_type()
|
|
645
|
-
if t is None:
|
|
646
|
-
continue
|
|
647
|
-
if isinstance(t, types.FunctionType):
|
|
648
|
-
if mnargs is None:
|
|
649
|
-
mnargs = mxargs = t.nargs
|
|
650
|
-
elif not (mnargs == mxargs == t.nargs):
|
|
651
|
-
return
|
|
652
|
-
if isinstance(t, types.UndefinedFunctionType):
|
|
653
|
-
if undefined_function is None:
|
|
654
|
-
undefined_function = t
|
|
655
|
-
else:
|
|
656
|
-
# Refuse to unify using function type
|
|
657
|
-
return
|
|
658
|
-
dispatchers.update(t.dispatchers)
|
|
659
|
-
else:
|
|
660
|
-
if function is None:
|
|
661
|
-
function = t
|
|
662
|
-
else:
|
|
663
|
-
assert function == t
|
|
664
|
-
else:
|
|
665
|
-
return
|
|
666
|
-
if require_precise and (function is None or undefined_function is not None):
|
|
667
|
-
return
|
|
668
|
-
if function is not None:
|
|
669
|
-
if undefined_function is not None:
|
|
670
|
-
assert function.nargs == undefined_function.nargs
|
|
671
|
-
function = undefined_function
|
|
672
|
-
elif undefined_function is not None:
|
|
673
|
-
undefined_function.dispatchers.update(dispatchers)
|
|
674
|
-
function = undefined_function
|
|
675
|
-
else:
|
|
676
|
-
function = types.UndefinedFunctionType(mnargs, dispatchers)
|
|
677
|
-
|
|
678
|
-
return function
|
|
679
|
-
|
|
680
|
-
|
|
681
578
|
class _RedirectSubpackage(ModuleType):
|
|
682
579
|
"""Redirect a subpackage to a subpackage.
|
|
683
580
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: numba-cuda
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.20.0
|
|
4
4
|
Summary: CUDA target for Numba
|
|
5
5
|
Author: Anaconda Inc., NVIDIA Corporation
|
|
6
|
-
License: BSD
|
|
6
|
+
License-Expression: BSD-2-Clause
|
|
7
7
|
Project-URL: Homepage, https://nvidia.github.io/numba-cuda/
|
|
8
8
|
Project-URL: Documentation, https://nvidia.github.io/numba-cuda/
|
|
9
9
|
Project-URL: Repository, https://github.com/NVIDIA/numba-cuda
|
|
@@ -12,6 +12,7 @@ Project-URL: Issues, https://github.com/NVIDIA/numba-cuda/issues
|
|
|
12
12
|
Requires-Python: >=3.9
|
|
13
13
|
Description-Content-Type: text/markdown
|
|
14
14
|
License-File: LICENSE
|
|
15
|
+
License-File: LICENSE.numba
|
|
15
16
|
Requires-Dist: numba>=0.60.0
|
|
16
17
|
Provides-Extra: cu12
|
|
17
18
|
Requires-Dist: cuda-bindings<13.0.0,>=12.9.1; extra == "cu12"
|
|
@@ -21,6 +22,7 @@ Requires-Dist: nvidia-cuda-nvcc-cu12; extra == "cu12"
|
|
|
21
22
|
Requires-Dist: nvidia-cuda-runtime-cu12; extra == "cu12"
|
|
22
23
|
Requires-Dist: nvidia-cuda-nvrtc-cu12; extra == "cu12"
|
|
23
24
|
Requires-Dist: nvidia-nvjitlink-cu12; extra == "cu12"
|
|
25
|
+
Requires-Dist: nvidia-cuda-cccl-cu12; extra == "cu12"
|
|
24
26
|
Provides-Extra: cu13
|
|
25
27
|
Requires-Dist: cuda-bindings==13.*; extra == "cu13"
|
|
26
28
|
Requires-Dist: cuda-core<0.4.0dev0,==0.3.2; extra == "cu13"
|
|
@@ -29,6 +31,7 @@ Requires-Dist: nvidia-nvvm==13.*; extra == "cu13"
|
|
|
29
31
|
Requires-Dist: nvidia-cuda-runtime==13.*; extra == "cu13"
|
|
30
32
|
Requires-Dist: nvidia-cuda-nvrtc==13.*; extra == "cu13"
|
|
31
33
|
Requires-Dist: nvidia-nvjitlink==13.*; extra == "cu13"
|
|
34
|
+
Requires-Dist: nvidia-cuda-cccl==13.*; extra == "cu13"
|
|
32
35
|
Provides-Extra: test
|
|
33
36
|
Requires-Dist: pre-commit; extra == "test"
|
|
34
37
|
Requires-Dist: psutil; extra == "test"
|
|
@@ -36,6 +39,7 @@ Requires-Dist: cffi; extra == "test"
|
|
|
36
39
|
Requires-Dist: pytest; extra == "test"
|
|
37
40
|
Requires-Dist: pytest-xdist; extra == "test"
|
|
38
41
|
Requires-Dist: filecheck; extra == "test"
|
|
42
|
+
Requires-Dist: ml_dtypes; extra == "test"
|
|
39
43
|
Provides-Extra: test-cu12
|
|
40
44
|
Requires-Dist: numba-cuda[cu12]; extra == "test-cu12"
|
|
41
45
|
Requires-Dist: numba-cuda[test]; extra == "test-cu12"
|