numba-cuda 0.7.0__tar.gz → 0.8.0__tar.gz
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.
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/PKG-INFO +3 -2
- numba_cuda-0.8.0/numba_cuda/VERSION +1 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/dispatcher.py +4 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/runtime/nrt.py +24 -5
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_overload.py +23 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/nrt/test_nrt.py +39 -8
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/nrt/test_nrt_refct.py +4 -5
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda.egg-info/PKG-INFO +3 -2
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda.egg-info/SOURCES.txt +0 -1
- numba_cuda-0.7.0/numba_cuda/VERSION +0 -1
- numba_cuda-0.7.0/numba_cuda/numba/cuda/tests/nrt/mock_numpy.py +0 -146
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/LICENSE +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/README.md +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/__init__.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/_version.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/__init__.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/api.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/api_util.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/args.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/cg.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/codegen.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/compiler.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/cpp_function_wrappers.cu +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/cuda_fp16.h +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/cuda_fp16.hpp +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/cuda_paths.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/cudadecl.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/cudadrv/__init__.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/cudadrv/devicearray.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/cudadrv/devices.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/cudadrv/driver.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/cudadrv/drvapi.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/cudadrv/dummyarray.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/cudadrv/enums.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/cudadrv/error.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/cudadrv/libs.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/cudadrv/linkable_code.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/cudadrv/mappings.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/cudadrv/ndarray.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/cudadrv/nvrtc.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/cudadrv/nvvm.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/cudadrv/rtapi.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/cudadrv/runtime.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/cudaimpl.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/cudamath.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/debuginfo.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/decorators.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/descriptor.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/device_init.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/deviceufunc.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/errors.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/extending.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/initialize.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/intrinsic_wrapper.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/intrinsics.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/kernels/__init__.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/kernels/reduction.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/kernels/transpose.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/libdevice.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/libdevicedecl.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/libdevicefuncs.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/libdeviceimpl.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/mathimpl.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/models.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/nvvmutils.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/printimpl.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/random.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/reshape_funcs.cu +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/runtime/__init__.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/runtime/memsys.cu +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/runtime/memsys.cuh +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/runtime/nrt.cu +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/simulator/__init__.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/simulator/api.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/simulator/compiler.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/simulator/cudadrv/__init__.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/simulator/cudadrv/devicearray.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/simulator/cudadrv/devices.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/simulator/cudadrv/driver.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/simulator/cudadrv/drvapi.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/simulator/cudadrv/dummyarray.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/simulator/cudadrv/error.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/simulator/cudadrv/libs.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/simulator/cudadrv/nvvm.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/simulator/cudadrv/runtime.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/simulator/kernel.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/simulator/kernelapi.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/simulator/reduction.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/simulator/vector_types.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/simulator_init.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/stubs.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/target.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/testing.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/__init__.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/__init__.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/test_array_attr.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/test_context_stack.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/test_cuda_array_slicing.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/test_cuda_auto_context.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/test_cuda_devicerecord.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/test_cuda_driver.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/test_cuda_libraries.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/test_cuda_memory.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/test_cuda_ndarray.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/test_deallocations.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/test_detect.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/test_emm_plugins.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/test_events.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/test_host_alloc.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/test_init.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/test_inline_ptx.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/test_is_fp16.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/test_linker.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/test_managed_alloc.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/test_mvc.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/test_nvjitlink.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/test_nvvm_driver.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/test_pinned.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/test_profiler.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/test_ptds.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/test_reset_device.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/test_runtime.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/test_select_device.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudadrv/test_streams.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/__init__.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/cache_usecases.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/cache_with_cpu_usecases.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/extensions_usecases.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/jitlink.ptx +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/recursion_usecases.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_alignment.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_array.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_array_args.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_array_methods.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_atomics.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_blackscholes.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_boolean.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_caching.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_casting.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_cffi.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_compiler.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_complex.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_complex_kernel.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_const_string.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_constmem.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_cooperative_groups.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_cuda_array_interface.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_cuda_jit_no_types.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_datetime.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_debug.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_debuginfo.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_device_func.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_dispatcher.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_enums.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_errors.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_exception.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_extending.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_fastmath.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_forall.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_freevar.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_frexp_ldexp.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_globals.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_gufunc.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_gufunc_scalar.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_gufunc_scheduling.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_idiv.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_inspect.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_intrinsics.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_ipc.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_iterators.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_lang.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_laplace.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_libdevice.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_lineinfo.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_localmem.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_mandel.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_math.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_matmul.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_minmax.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_montecarlo.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_multigpu.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_multiprocessing.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_multithreads.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_nondet.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_operator.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_optimization.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_powi.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_print.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_py2_div_issue.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_random.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_record_dtype.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_recursion.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_reduction.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_retrieve_autoconverted_arrays.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_serialize.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_slicing.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_sm.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_sm_creation.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_stream_api.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_sync.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_transpose.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_ufuncs.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_userexc.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_vector_type.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_vectorize.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_vectorize_complex.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_vectorize_decor.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_vectorize_device.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_vectorize_scalar_arg.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_warning.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudapy/test_warp_ops.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudasim/__init__.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudasim/support.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/cudasim/test_cudasim_issues.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/data/__init__.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/data/cuda_include.cu +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/data/error.cu +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/data/jitlink.cu +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/data/jitlink.ptx +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/data/warn.cu +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/doc_examples/__init__.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/doc_examples/ffi/__init__.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/doc_examples/ffi/functions.cu +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/doc_examples/test_cg.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/doc_examples/test_cpu_gpu_compat.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/doc_examples/test_ffi.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/doc_examples/test_laplace.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/doc_examples/test_matmul.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/doc_examples/test_montecarlo.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/doc_examples/test_random.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/doc_examples/test_reduction.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/doc_examples/test_sessionize.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/doc_examples/test_ufunc.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/doc_examples/test_vecadd.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/nocuda/__init__.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/nocuda/test_dummyarray.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/nocuda/test_function_resolution.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/nocuda/test_import.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/nocuda/test_library_lookup.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/nocuda/test_nvvm.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/nrt/__init__.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/support.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/test_binary_generation/Makefile +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/test_binary_generation/generate_raw_ltoir.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/test_binary_generation/test_device_functions.cu +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/tests/test_binary_generation/undefined_extern.cu +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/types.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/ufuncs.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/utils.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/vector_types.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/vectorizers.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda.egg-info/dependency_links.txt +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda.egg-info/requires.txt +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda.egg-info/top_level.txt +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/pyproject.toml +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/setup.cfg +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/setup.py +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/site-packages/_numba_cuda_redirector.pth +0 -0
- {numba_cuda-0.7.0 → numba_cuda-0.8.0}/site-packages/_numba_cuda_redirector.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: numba-cuda
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.8.0
|
4
4
|
Summary: CUDA target for Numba
|
5
5
|
Author: Anaconda Inc., NVIDIA Corporation
|
6
6
|
License: BSD 2-clause
|
@@ -12,6 +12,7 @@ Requires-Python: >=3.9
|
|
12
12
|
Description-Content-Type: text/markdown
|
13
13
|
License-File: LICENSE
|
14
14
|
Requires-Dist: numba>=0.59.1
|
15
|
+
Dynamic: license-file
|
15
16
|
|
16
17
|
<div align="center"><img src="docs/source/_static/numba-green-icon-rgb.svg" width="200"/></div>
|
17
18
|
|
@@ -0,0 +1 @@
|
|
1
|
+
0.8.0
|
@@ -968,6 +968,10 @@ class CUDADispatcher(Dispatcher, serialize.ReduceMixin):
|
|
968
968
|
|
969
969
|
A (template, pysig, args, kws) tuple is returned.
|
970
970
|
"""
|
971
|
+
# Fold keyword arguments and resolve default values
|
972
|
+
pysig, args = self._compiler.fold_argument_types(args, kws)
|
973
|
+
kws = {}
|
974
|
+
|
971
975
|
# Ensure an exactly-matching overload is available if we can
|
972
976
|
# compile. We proceed with the typing even if we can't compile
|
973
977
|
# because we may be able to force a cast on the caller side.
|
@@ -5,7 +5,8 @@ import numpy as np
|
|
5
5
|
|
6
6
|
from numba import cuda, config
|
7
7
|
from numba.core.runtime.nrt import _nrt_mstats
|
8
|
-
from numba.cuda.cudadrv.driver import Linker, driver, launch_kernel
|
8
|
+
from numba.cuda.cudadrv.driver import (Linker, driver, launch_kernel,
|
9
|
+
USE_NV_BINDING)
|
9
10
|
from numba.cuda.cudadrv import devices
|
10
11
|
from numba.cuda.api import get_current_device
|
11
12
|
from numba.cuda.utils import _readenv
|
@@ -128,6 +129,18 @@ class _Runtime:
|
|
128
129
|
cooperative=False
|
129
130
|
)
|
130
131
|
|
132
|
+
def _ctypes_pointer(self, array):
|
133
|
+
"""
|
134
|
+
Given an array, return a ctypes pointer to the data suitable for
|
135
|
+
passing to ``launch_kernel``.
|
136
|
+
"""
|
137
|
+
ptr = array.device_ctypes_pointer
|
138
|
+
|
139
|
+
if USE_NV_BINDING:
|
140
|
+
ptr = ctypes.c_void_p(int(ptr))
|
141
|
+
|
142
|
+
return ptr
|
143
|
+
|
131
144
|
def ensure_initialized(self, stream=None):
|
132
145
|
"""
|
133
146
|
If memsys is not initialized, initialize memsys
|
@@ -174,12 +187,13 @@ class _Runtime:
|
|
174
187
|
context
|
175
188
|
"""
|
176
189
|
enabled_ar = cuda.managed_array(1, np.uint8)
|
190
|
+
enabled_ptr = self._ctypes_pointer(enabled_ar)
|
177
191
|
|
178
192
|
self._single_thread_launch(
|
179
193
|
self._memsys_module,
|
180
194
|
stream,
|
181
195
|
"NRT_MemSys_stats_enabled",
|
182
|
-
(
|
196
|
+
(enabled_ptr,)
|
183
197
|
)
|
184
198
|
|
185
199
|
cuda.synchronize()
|
@@ -198,12 +212,13 @@ class _Runtime:
|
|
198
212
|
])
|
199
213
|
|
200
214
|
stats_for_read = cuda.managed_array(1, dt)
|
215
|
+
stats_ptr = self._ctypes_pointer(stats_for_read)
|
201
216
|
|
202
217
|
self._single_thread_launch(
|
203
218
|
self._memsys_module,
|
204
219
|
stream,
|
205
220
|
"NRT_MemSys_read",
|
206
|
-
[
|
221
|
+
[stats_ptr]
|
207
222
|
)
|
208
223
|
cuda.synchronize()
|
209
224
|
|
@@ -231,11 +246,13 @@ class _Runtime:
|
|
231
246
|
Get a single stat from the memsys
|
232
247
|
"""
|
233
248
|
got = cuda.managed_array(1, np.uint64)
|
249
|
+
got_ptr = self._ctypes_pointer(got)
|
250
|
+
|
234
251
|
self._single_thread_launch(
|
235
252
|
self._memsys_module,
|
236
253
|
stream,
|
237
254
|
f"NRT_MemSys_read_{stat}",
|
238
|
-
[
|
255
|
+
[got_ptr]
|
239
256
|
)
|
240
257
|
|
241
258
|
cuda.synchronize()
|
@@ -294,11 +311,13 @@ class _Runtime:
|
|
294
311
|
raise RuntimeError(
|
295
312
|
"Please allocate NRT Memsys first before setting to module.")
|
296
313
|
|
314
|
+
memsys_ptr = self._ctypes_pointer(self._memsys)
|
315
|
+
|
297
316
|
self._single_thread_launch(
|
298
317
|
module,
|
299
318
|
stream,
|
300
319
|
"NRT_MemSys_set",
|
301
|
-
[
|
320
|
+
[memsys_ptr]
|
302
321
|
)
|
303
322
|
|
304
323
|
@_alloc_init_guard
|
@@ -56,6 +56,10 @@ def target_overloaded_calls_target_overloaded():
|
|
56
56
|
pass
|
57
57
|
|
58
58
|
|
59
|
+
def default_values_and_kwargs():
|
60
|
+
pass
|
61
|
+
|
62
|
+
|
59
63
|
# To recognise which functions are resolved for a call, we identify each with a
|
60
64
|
# prime number. Each function called multiplies a value by its prime (starting
|
61
65
|
# with the value 1), and we can check that the result is as expected based on
|
@@ -185,6 +189,13 @@ def ol_generic_calls_target_overloaded_cuda(x):
|
|
185
189
|
return impl
|
186
190
|
|
187
191
|
|
192
|
+
@overload(default_values_and_kwargs)
|
193
|
+
def ol_default_values_and_kwargs(out, x, y=5, z=6):
|
194
|
+
def impl(out, x, y=5, z=6):
|
195
|
+
out[0], out[1] = x + y, z
|
196
|
+
return impl
|
197
|
+
|
198
|
+
|
188
199
|
@skip_on_cudasim('Overloading not supported in cudasim')
|
189
200
|
class TestOverload(CUDATestCase):
|
190
201
|
def check_overload(self, kernel, expected):
|
@@ -330,6 +341,18 @@ class TestOverload(CUDATestCase):
|
|
330
341
|
def cuda_target_attr_use(res, dummy):
|
331
342
|
res[0] = dummy.cuda_only
|
332
343
|
|
344
|
+
def test_default_values_and_kwargs(self):
|
345
|
+
"""
|
346
|
+
Test default values and kwargs.
|
347
|
+
"""
|
348
|
+
@cuda.jit()
|
349
|
+
def kernel(a, b, out):
|
350
|
+
default_values_and_kwargs(out, a, z=b)
|
351
|
+
|
352
|
+
out = np.empty(2, dtype=np.int64)
|
353
|
+
kernel[1,1](1, 2, out)
|
354
|
+
self.assertEqual(tuple(out), (6, 2))
|
355
|
+
|
333
356
|
|
334
357
|
if __name__ == '__main__':
|
335
358
|
unittest.main()
|
@@ -5,7 +5,6 @@ import numpy as np
|
|
5
5
|
import unittest
|
6
6
|
from numba.cuda.testing import CUDATestCase
|
7
7
|
|
8
|
-
from numba.cuda.tests.nrt.mock_numpy import cuda_empty, cuda_ones, cuda_arange
|
9
8
|
from numba.tests.support import run_in_subprocess, override_config
|
10
9
|
|
11
10
|
from numba import cuda
|
@@ -24,7 +23,7 @@ class TestNrtBasic(CUDATestCase):
|
|
24
23
|
|
25
24
|
@cuda.jit
|
26
25
|
def g():
|
27
|
-
x =
|
26
|
+
x = np.empty(10, np.int64)
|
28
27
|
f(x)
|
29
28
|
|
30
29
|
g[1,1]()
|
@@ -37,7 +36,7 @@ class TestNrtBasic(CUDATestCase):
|
|
37
36
|
|
38
37
|
@cuda.jit
|
39
38
|
def g():
|
40
|
-
x =
|
39
|
+
x = np.empty(10, np.int64)
|
41
40
|
f(x)
|
42
41
|
|
43
42
|
g[1,1]()
|
@@ -66,7 +65,7 @@ class TestNrtBasic(CUDATestCase):
|
|
66
65
|
|
67
66
|
@cuda.jit
|
68
67
|
def g(out_ary):
|
69
|
-
x =
|
68
|
+
x = np.empty(10, np.int64)
|
70
69
|
x[5] = 1
|
71
70
|
y = f(x)
|
72
71
|
out_ary[0] = y[0]
|
@@ -97,11 +96,11 @@ class TestNrtStatistics(CUDATestCase):
|
|
97
96
|
src = """if 1:
|
98
97
|
from numba import cuda
|
99
98
|
from numba.cuda.runtime import rtsys
|
100
|
-
|
99
|
+
import numpy as np
|
101
100
|
|
102
101
|
@cuda.jit
|
103
102
|
def foo():
|
104
|
-
x =
|
103
|
+
x = np.arange(10)[0]
|
105
104
|
|
106
105
|
# initialize the NRT before use
|
107
106
|
rtsys.initialize()
|
@@ -167,8 +166,8 @@ class TestNrtStatistics(CUDATestCase):
|
|
167
166
|
|
168
167
|
@cuda.jit
|
169
168
|
def foo():
|
170
|
-
tmp =
|
171
|
-
arr =
|
169
|
+
tmp = np.ones(3)
|
170
|
+
arr = np.arange(5 * tmp[0]) # noqa: F841
|
172
171
|
return None
|
173
172
|
|
174
173
|
with (
|
@@ -230,6 +229,38 @@ class TestNrtStatistics(CUDATestCase):
|
|
230
229
|
stats_func()
|
231
230
|
self.assertIn("NRT stats are disabled.", str(raises.exception))
|
232
231
|
|
232
|
+
def test_read_one_stat(self):
|
233
|
+
@cuda.jit
|
234
|
+
def foo():
|
235
|
+
tmp = np.ones(3)
|
236
|
+
arr = np.arange(5 * tmp[0]) # noqa: F841
|
237
|
+
return None
|
238
|
+
|
239
|
+
with (
|
240
|
+
override_config('CUDA_ENABLE_NRT', True),
|
241
|
+
override_config('CUDA_NRT_STATS', True)
|
242
|
+
):
|
243
|
+
|
244
|
+
# Switch on stats
|
245
|
+
rtsys.memsys_enable_stats()
|
246
|
+
|
247
|
+
# Launch the kernel a couple of times to increase stats
|
248
|
+
foo[1, 1]()
|
249
|
+
foo[1, 1]()
|
250
|
+
|
251
|
+
# Get stats struct and individual stats
|
252
|
+
stats = rtsys.get_allocation_stats()
|
253
|
+
stats_alloc = rtsys.memsys_get_stats_alloc()
|
254
|
+
stats_mi_alloc = rtsys.memsys_get_stats_mi_alloc()
|
255
|
+
stats_free = rtsys.memsys_get_stats_free()
|
256
|
+
stats_mi_free = rtsys.memsys_get_stats_mi_free()
|
257
|
+
|
258
|
+
# Check individual stats match stats struct
|
259
|
+
self.assertEqual(stats.alloc, stats_alloc)
|
260
|
+
self.assertEqual(stats.mi_alloc, stats_mi_alloc)
|
261
|
+
self.assertEqual(stats.free, stats_free)
|
262
|
+
self.assertEqual(stats.mi_free, stats_mi_free)
|
263
|
+
|
233
264
|
|
234
265
|
if __name__ == '__main__':
|
235
266
|
unittest.main()
|
@@ -4,7 +4,6 @@ from numba.tests.support import override_config
|
|
4
4
|
from numba.cuda.runtime import rtsys
|
5
5
|
from numba.cuda.tests.support import EnableNRTStatsMixin
|
6
6
|
from numba.cuda.testing import CUDATestCase
|
7
|
-
from numba.cuda.tests.nrt.mock_numpy import cuda_empty, cuda_empty_like
|
8
7
|
|
9
8
|
from numba import cuda
|
10
9
|
|
@@ -34,7 +33,7 @@ class TestNrtRefCt(EnableNRTStatsMixin, CUDATestCase):
|
|
34
33
|
@cuda.jit
|
35
34
|
def kernel():
|
36
35
|
for i in range(n):
|
37
|
-
temp =
|
36
|
+
temp = np.empty(2) # noqa: F841
|
38
37
|
return None
|
39
38
|
|
40
39
|
init_stats = rtsys.get_allocation_stats()
|
@@ -51,7 +50,7 @@ class TestNrtRefCt(EnableNRTStatsMixin, CUDATestCase):
|
|
51
50
|
@cuda.jit
|
52
51
|
def g(n):
|
53
52
|
|
54
|
-
x =
|
53
|
+
x = np.empty((n, 2))
|
55
54
|
|
56
55
|
for i in range(n):
|
57
56
|
y = x[i]
|
@@ -73,13 +72,13 @@ class TestNrtRefCt(EnableNRTStatsMixin, CUDATestCase):
|
|
73
72
|
"""
|
74
73
|
@cuda.jit
|
75
74
|
def if_with_allocation_and_initialization(arr1, test1):
|
76
|
-
tmp_arr =
|
75
|
+
tmp_arr = np.empty_like(arr1)
|
77
76
|
|
78
77
|
for i in range(tmp_arr.shape[0]):
|
79
78
|
pass
|
80
79
|
|
81
80
|
if test1:
|
82
|
-
|
81
|
+
np.empty_like(arr1)
|
83
82
|
|
84
83
|
arr = np.random.random((5, 5)) # the values are not consumed
|
85
84
|
|
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: numba-cuda
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.8.0
|
4
4
|
Summary: CUDA target for Numba
|
5
5
|
Author: Anaconda Inc., NVIDIA Corporation
|
6
6
|
License: BSD 2-clause
|
@@ -12,6 +12,7 @@ Requires-Python: >=3.9
|
|
12
12
|
Description-Content-Type: text/markdown
|
13
13
|
License-File: LICENSE
|
14
14
|
Requires-Dist: numba>=0.59.1
|
15
|
+
Dynamic: license-file
|
15
16
|
|
16
17
|
<div align="center"><img src="docs/source/_static/numba-green-icon-rgb.svg" width="200"/></div>
|
17
18
|
|
@@ -245,7 +245,6 @@ numba_cuda/numba/cuda/tests/nocuda/test_import.py
|
|
245
245
|
numba_cuda/numba/cuda/tests/nocuda/test_library_lookup.py
|
246
246
|
numba_cuda/numba/cuda/tests/nocuda/test_nvvm.py
|
247
247
|
numba_cuda/numba/cuda/tests/nrt/__init__.py
|
248
|
-
numba_cuda/numba/cuda/tests/nrt/mock_numpy.py
|
249
248
|
numba_cuda/numba/cuda/tests/nrt/test_nrt.py
|
250
249
|
numba_cuda/numba/cuda/tests/nrt/test_nrt_refct.py
|
251
250
|
numba_cuda/numba/cuda/tests/test_binary_generation/Makefile
|
@@ -1 +0,0 @@
|
|
1
|
-
0.7.0
|
@@ -1,146 +0,0 @@
|
|
1
|
-
import math
|
2
|
-
|
3
|
-
import numpy as np
|
4
|
-
|
5
|
-
from numba.core import errors, types
|
6
|
-
from numba.core.extending import overload
|
7
|
-
from numba.np.arrayobj import (_check_const_str_dtype, is_nonelike,
|
8
|
-
ty_parse_dtype, ty_parse_shape, numpy_empty_nd,
|
9
|
-
numpy_empty_like_nd)
|
10
|
-
|
11
|
-
|
12
|
-
# Typical tests for allocation use array construction (e.g. np.zeros, np.empty,
|
13
|
-
# etc.) to induce allocations. These don't work in the CUDA target because they
|
14
|
-
# need keyword arguments, which are presently not supported properly in the
|
15
|
-
# CUDA target.
|
16
|
-
#
|
17
|
-
# To work around this, we can define our own function, that works like
|
18
|
-
# the desired one, except that it uses only positional arguments.
|
19
|
-
#
|
20
|
-
# Once the CUDA target supports keyword arguments, this workaround will no
|
21
|
-
# longer be necessary and the tests in this module should be switched to use
|
22
|
-
# the relevant NumPy functions instead.
|
23
|
-
def cuda_empty(shape, dtype):
|
24
|
-
pass
|
25
|
-
|
26
|
-
|
27
|
-
def cuda_empty_like(arr):
|
28
|
-
pass
|
29
|
-
|
30
|
-
|
31
|
-
def cuda_arange(start):
|
32
|
-
pass
|
33
|
-
|
34
|
-
|
35
|
-
def cuda_ones(shape):
|
36
|
-
pass
|
37
|
-
|
38
|
-
|
39
|
-
@overload(cuda_empty)
|
40
|
-
def ol_cuda_empty(shape, dtype):
|
41
|
-
_check_const_str_dtype("empty", dtype)
|
42
|
-
if (dtype is float or
|
43
|
-
(isinstance(dtype, types.Function) and dtype.typing_key is float) or
|
44
|
-
is_nonelike(dtype)): #default
|
45
|
-
nb_dtype = types.double
|
46
|
-
else:
|
47
|
-
nb_dtype = ty_parse_dtype(dtype)
|
48
|
-
|
49
|
-
ndim = ty_parse_shape(shape)
|
50
|
-
if nb_dtype is not None and ndim is not None:
|
51
|
-
retty = types.Array(dtype=nb_dtype, ndim=ndim, layout='C')
|
52
|
-
|
53
|
-
def impl(shape, dtype):
|
54
|
-
return numpy_empty_nd(shape, dtype, retty)
|
55
|
-
return impl
|
56
|
-
else:
|
57
|
-
msg = f"Cannot parse input types to function np.empty({shape}, {dtype})"
|
58
|
-
raise errors.TypingError(msg)
|
59
|
-
|
60
|
-
|
61
|
-
@overload(cuda_empty_like)
|
62
|
-
def ol_cuda_empty_like(arr):
|
63
|
-
|
64
|
-
if isinstance(arr, types.Array):
|
65
|
-
nb_dtype = arr.dtype
|
66
|
-
else:
|
67
|
-
nb_dtype = arr
|
68
|
-
|
69
|
-
if isinstance(arr, types.Array):
|
70
|
-
layout = arr.layout if arr.layout != 'A' else 'C'
|
71
|
-
retty = arr.copy(dtype=nb_dtype, layout=layout, readonly=False)
|
72
|
-
else:
|
73
|
-
retty = types.Array(nb_dtype, 0, 'C')
|
74
|
-
|
75
|
-
def impl(arr):
|
76
|
-
dtype = None
|
77
|
-
return numpy_empty_like_nd(arr, dtype, retty)
|
78
|
-
return impl
|
79
|
-
|
80
|
-
|
81
|
-
def _arange_dtype(*args):
|
82
|
-
bounds = [a for a in args if not isinstance(a, types.NoneType)]
|
83
|
-
|
84
|
-
if any(isinstance(a, types.Complex) for a in bounds):
|
85
|
-
dtype = types.complex128
|
86
|
-
elif any(isinstance(a, types.Float) for a in bounds):
|
87
|
-
dtype = types.float64
|
88
|
-
else:
|
89
|
-
# `np.arange(10).dtype` is always `np.dtype(int)`, aka `np.int_`, which
|
90
|
-
# in all released versions of numpy corresponds to the C `long` type.
|
91
|
-
# Windows 64 is broken by default here because Numba (as of 0.47) does
|
92
|
-
# not differentiate between Python and NumPy integers, so a `typeof(1)`
|
93
|
-
# on w64 is `int64`, i.e. `intp`. This means an arange(<some int>) will
|
94
|
-
# be typed as arange(int64) and the following will yield int64 opposed
|
95
|
-
# to int32. Example: without a load of analysis to work out of the args
|
96
|
-
# were wrapped in NumPy int*() calls it's not possible to detect the
|
97
|
-
# difference between `np.arange(10)` and `np.arange(np.int64(10)`.
|
98
|
-
NPY_TY = getattr(types, "int%s" % (8 * np.dtype(int).itemsize))
|
99
|
-
|
100
|
-
# unliteral these types such that `max` works.
|
101
|
-
unliteral_bounds = [types.unliteral(x) for x in bounds]
|
102
|
-
dtype = max(unliteral_bounds + [NPY_TY,])
|
103
|
-
|
104
|
-
return dtype
|
105
|
-
|
106
|
-
|
107
|
-
@overload(cuda_arange)
|
108
|
-
def ol_cuda_arange(start):
|
109
|
-
"""Simplified arange with just 1 argument."""
|
110
|
-
if (not isinstance(start, types.Number)):
|
111
|
-
return
|
112
|
-
|
113
|
-
start_value = getattr(start, "literal_value", None)
|
114
|
-
|
115
|
-
def impl(start):
|
116
|
-
# Allow for improved performance if given literal arguments.
|
117
|
-
lit_start = start_value if start_value is not None else start
|
118
|
-
|
119
|
-
_step = 1
|
120
|
-
_start, _stop = 0, lit_start
|
121
|
-
|
122
|
-
nitems_c = (_stop - _start) / _step
|
123
|
-
nitems_r = int(math.ceil(nitems_c.real))
|
124
|
-
|
125
|
-
# Binary operator needed for compiler branch pruning.
|
126
|
-
nitems = max(nitems_r, 0)
|
127
|
-
|
128
|
-
arr = cuda_empty(nitems, np.int64)
|
129
|
-
val = _start
|
130
|
-
for i in range(nitems):
|
131
|
-
arr[i] = val + (i * _step)
|
132
|
-
return arr
|
133
|
-
|
134
|
-
return impl
|
135
|
-
|
136
|
-
|
137
|
-
@overload(cuda_ones)
|
138
|
-
def ol_cuda_ones(shape):
|
139
|
-
|
140
|
-
def impl(shape):
|
141
|
-
arr = cuda_empty(shape, np.float64)
|
142
|
-
arr_flat = arr.flat
|
143
|
-
for idx in range(len(arr_flat)):
|
144
|
-
arr_flat[idx] = 1
|
145
|
-
return arr
|
146
|
-
return impl
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{numba_cuda-0.7.0 → numba_cuda-0.8.0}/numba_cuda/numba/cuda/simulator/cudadrv/devicearray.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|