conda-forge / numba-feedstock

A conda-smithy repository for numba.
BSD 3-Clause "New" or "Revised" License
0 stars 27 forks source link

CUDA atomics don't work in 0.50 due to missing required LLVM patch #55

Closed gmarkall closed 3 years ago

gmarkall commented 4 years ago

Issue:

Numba 0.50 depends on llvmlite 0.33, which uses LLVM 9 from the llvmdev package. With the switch to LLVM 9, a patch to LLVM is required to stop it auto-upgrading atomic intrinsics into a form that NVVM doesn't support (see https://github.com/numba/llvmlite/pull/593). However, the llvmdev conda-forge feedstock does not appear to carry this patch, so some CUDA atomics don't work when Numba and llvmlite are installed from conda-forge:

$ python -m numba.runtests numba.cuda.tests.cudapy.test_atomics
...EEEEEEEEEE..........................

----------------------------------------------------------------------
Ran 39 tests in 2.953s

FAILED (errors=10)

The requirement for this patch will be dropped in Numba 0.51 (when numba/numba#6030 is merged) so I don't know whether it's worth doing anything about this issue, or just waiting for Numba 0.51 / llvmlite 0.34 - I've opened the issue here for awareness though.

Full details of the failures:

``` ====================================================================== ERROR: test_atomic_add_double (numba.cuda.tests.cudapy.test_atomics.TestCudaAtomics) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/tests/cudapy/test_atomics.py", line 259, in test_atomic_add_double cuda_func = cuda.jit('void(int64[:], float64[:])')(atomic_add_double) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/decorators.py", line 103, in kernel_jit kernel.bind() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 604, in bind self._func.get() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 480, in get ptx = self.ptx.get() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 451, in get **self._extra_options) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 515, in llvm_to_ptx ptx = cu.compile(**opts) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 232, in compile self._try_error(err, 'Failed to compile\n') File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 250, in _try_error self.driver.check_error(err, "%s\n%s" % (msg, self.get_log())) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 140, in check_error raise exc numba.cuda.cudadrv.error.NvvmError: Failed to compile (50, 17): parse expected binary operation in atomicrmw NVVM_ERROR_COMPILATION ====================================================================== ERROR: test_atomic_add_double_2 (numba.cuda.tests.cudapy.test_atomics.TestCudaAtomics) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/tests/cudapy/test_atomics.py", line 272, in test_atomic_add_double_2 cuda_func = cuda.jit('void(float64[:,:])')(atomic_add_double_2) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/decorators.py", line 103, in kernel_jit kernel.bind() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 604, in bind self._func.get() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 480, in get ptx = self.ptx.get() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 451, in get **self._extra_options) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 515, in llvm_to_ptx ptx = cu.compile(**opts) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 232, in compile self._try_error(err, 'Failed to compile\n') File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 250, in _try_error self.driver.check_error(err, "%s\n%s" % (msg, self.get_log())) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 140, in check_error raise exc numba.cuda.cudadrv.error.NvvmError: Failed to compile (62, 18): parse expected binary operation in atomicrmw NVVM_ERROR_COMPILATION ====================================================================== ERROR: test_atomic_add_double_3 (numba.cuda.tests.cudapy.test_atomics.TestCudaAtomics) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/tests/cudapy/test_atomics.py", line 280, in test_atomic_add_double_3 cuda_func = cuda.jit('void(float64[:,:])')(atomic_add_double_3) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/decorators.py", line 103, in kernel_jit kernel.bind() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 604, in bind self._func.get() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 480, in get ptx = self.ptx.get() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 451, in get **self._extra_options) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 515, in llvm_to_ptx ptx = cu.compile(**opts) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 232, in compile self._try_error(err, 'Failed to compile\n') File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 250, in _try_error self.driver.check_error(err, "%s\n%s" % (msg, self.get_log())) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 140, in check_error raise exc numba.cuda.cudadrv.error.NvvmError: Failed to compile (62, 18): parse expected binary operation in atomicrmw NVVM_ERROR_COMPILATION ====================================================================== ERROR: test_atomic_add_double_global (numba.cuda.tests.cudapy.test_atomics.TestCudaAtomics) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/tests/cudapy/test_atomics.py", line 290, in test_atomic_add_double_global cuda_func = cuda.jit('void(int64[:], float64[:])')(atomic_add_double_global) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/decorators.py", line 103, in kernel_jit kernel.bind() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 604, in bind self._func.get() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 480, in get ptx = self.ptx.get() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 451, in get **self._extra_options) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 515, in llvm_to_ptx ptx = cu.compile(**opts) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 232, in compile self._try_error(err, 'Failed to compile\n') File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 250, in _try_error self.driver.check_error(err, "%s\n%s" % (msg, self.get_log())) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 140, in check_error raise exc numba.cuda.cudadrv.error.NvvmError: Failed to compile (43, 17): parse expected binary operation in atomicrmw NVVM_ERROR_COMPILATION ====================================================================== ERROR: test_atomic_add_double_global_2 (numba.cuda.tests.cudapy.test_atomics.TestCudaAtomics) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/tests/cudapy/test_atomics.py", line 303, in test_atomic_add_double_global_2 cuda_func = cuda.jit('void(float64[:,:])')(atomic_add_double_global_2) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/decorators.py", line 103, in kernel_jit kernel.bind() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 604, in bind self._func.get() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 480, in get ptx = self.ptx.get() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 451, in get **self._extra_options) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 515, in llvm_to_ptx ptx = cu.compile(**opts) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 232, in compile self._try_error(err, 'Failed to compile\n') File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 250, in _try_error self.driver.check_error(err, "%s\n%s" % (msg, self.get_log())) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 140, in check_error raise exc numba.cuda.cudadrv.error.NvvmError: Failed to compile (35, 17): parse expected binary operation in atomicrmw NVVM_ERROR_COMPILATION ====================================================================== ERROR: test_atomic_add_double_global_3 (numba.cuda.tests.cudapy.test_atomics.TestCudaAtomics) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/tests/cudapy/test_atomics.py", line 311, in test_atomic_add_double_global_3 cuda_func = cuda.jit('void(float64[:,:])')(atomic_add_double_global_3) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/decorators.py", line 103, in kernel_jit kernel.bind() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 604, in bind self._func.get() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 480, in get ptx = self.ptx.get() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 451, in get **self._extra_options) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 515, in llvm_to_ptx ptx = cu.compile(**opts) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 232, in compile self._try_error(err, 'Failed to compile\n') File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 250, in _try_error self.driver.check_error(err, "%s\n%s" % (msg, self.get_log())) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 140, in check_error raise exc numba.cuda.cudadrv.error.NvvmError: Failed to compile (35, 17): parse expected binary operation in atomicrmw NVVM_ERROR_COMPILATION ====================================================================== ERROR: test_atomic_add_float (numba.cuda.tests.cudapy.test_atomics.TestCudaAtomics) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/tests/cudapy/test_atomics.py", line 215, in test_atomic_add_float cuda_atomic_add_float = cuda.jit('void(float32[:])')(atomic_add_float) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/decorators.py", line 103, in kernel_jit kernel.bind() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 604, in bind self._func.get() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 480, in get ptx = self.ptx.get() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 451, in get **self._extra_options) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 515, in llvm_to_ptx ptx = cu.compile(**opts) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 232, in compile self._try_error(err, 'Failed to compile\n') File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 250, in _try_error self.driver.check_error(err, "%s\n%s" % (msg, self.get_log())) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 140, in check_error raise exc numba.cuda.cudadrv.error.NvvmError: Failed to compile (50, 17): parse expected binary operation in atomicrmw NVVM_ERROR_COMPILATION ====================================================================== ERROR: test_atomic_add_float_2 (numba.cuda.tests.cudapy.test_atomics.TestCudaAtomics) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/tests/cudapy/test_atomics.py", line 227, in test_atomic_add_float_2 cuda_atomic_add2 = cuda.jit('void(float32[:,:])')(atomic_add_float_2) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/decorators.py", line 103, in kernel_jit kernel.bind() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 604, in bind self._func.get() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 480, in get ptx = self.ptx.get() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 451, in get **self._extra_options) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 515, in llvm_to_ptx ptx = cu.compile(**opts) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 232, in compile self._try_error(err, 'Failed to compile\n') File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 250, in _try_error self.driver.check_error(err, "%s\n%s" % (msg, self.get_log())) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 140, in check_error raise exc numba.cuda.cudadrv.error.NvvmError: Failed to compile (62, 18): parse expected binary operation in atomicrmw NVVM_ERROR_COMPILATION ====================================================================== ERROR: test_atomic_add_float_3 (numba.cuda.tests.cudapy.test_atomics.TestCudaAtomics) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/tests/cudapy/test_atomics.py", line 234, in test_atomic_add_float_3 cuda_atomic_add3 = cuda.jit('void(float32[:,:])')(atomic_add_float_3) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/decorators.py", line 103, in kernel_jit kernel.bind() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 604, in bind self._func.get() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 480, in get ptx = self.ptx.get() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 451, in get **self._extra_options) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 515, in llvm_to_ptx ptx = cu.compile(**opts) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 232, in compile self._try_error(err, 'Failed to compile\n') File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 250, in _try_error self.driver.check_error(err, "%s\n%s" % (msg, self.get_log())) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 140, in check_error raise exc numba.cuda.cudadrv.error.NvvmError: Failed to compile (62, 18): parse expected binary operation in atomicrmw NVVM_ERROR_COMPILATION ====================================================================== ERROR: test_atomic_add_returns_old (numba.cuda.tests.cudapy.test_atomics.TestCudaAtomics) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/tests/cudapy/test_atomics.py", line 489, in test_atomic_add_returns_old self._test_atomic_returns_old(kernel, 10) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/tests/cudapy/test_atomics.py", line 478, in _test_atomic_returns_old kernel[1, 1](x) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 833, in __call__ kernel = self.specialize(*args) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 844, in specialize kernel = self.compile(argtypes) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 863, in compile kernel.bind() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 604, in bind self._func.get() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 480, in get ptx = self.ptx.get() File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/compiler.py", line 451, in get **self._extra_options) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 515, in llvm_to_ptx ptx = cu.compile(**opts) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 232, in compile self._try_error(err, 'Failed to compile\n') File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 250, in _try_error self.driver.check_error(err, "%s\n%s" % (msg, self.get_log())) File "/home/gmarkall/miniconda3/envs/numba-conda-forge/lib/python3.7/site-packages/numba/cuda/cudadrv/nvvm.py", line 140, in check_error raise exc numba.cuda.cudadrv.error.NvvmError: Failed to compile (25, 17): parse expected binary operation in atomicrmw NVVM_ERROR_COMPILATION ```


Environment (conda list):

``` $ conda list # packages in environment at /home/gmarkall/miniconda3/envs/numba-conda-forge: # # Name Version Build Channel _libgcc_mutex 0.1 conda_forge conda-forge _openmp_mutex 4.5 0_gnu conda-forge ca-certificates 2020.6.20 hecda079_0 conda-forge certifi 2020.6.20 py37hc8dfbb8_0 conda-forge ld_impl_linux-64 2.34 hc38a660_9 conda-forge libblas 3.8.0 17_openblas conda-forge libcblas 3.8.0 17_openblas conda-forge libffi 3.2.1 he1b5a44_1007 conda-forge libgcc-ng 9.3.0 h24d8f2e_11 conda-forge libgfortran-ng 7.5.0 hdf63c60_11 conda-forge libgomp 9.3.0 h24d8f2e_11 conda-forge liblapack 3.8.0 17_openblas conda-forge libllvm9 9.0.1 he513fc3_1 conda-forge libopenblas 0.3.10 pthreads_hb3c22a3_4 conda-forge libstdcxx-ng 9.3.0 hdf63c60_11 conda-forge llvmlite 0.33.0 py37h5202443_1 conda-forge ncurses 6.2 he1b5a44_1 conda-forge numba 0.50.1 py37h0da4684_1 conda-forge numpy 1.19.1 py37h8960a57_0 conda-forge openssl 1.1.1g h516909a_1 conda-forge pip 20.2 py_0 conda-forge python 3.7.8 h6f2ec95_0_cpython conda-forge python_abi 3.7 1_cp37m conda-forge readline 8.0 he28a2e2_2 conda-forge setuptools 49.2.0 py37hc8dfbb8_0 conda-forge sqlite 3.32.3 hcee41ef_1 conda-forge tk 8.6.10 hed695b0_0 conda-forge wheel 0.34.2 py_1 conda-forge xz 5.2.5 h516909a_1 conda-forge zlib 1.2.11 h516909a_1006 conda-forge ```


Details about conda and system ( conda info ):

``` $ conda info active environment : numba-conda-forge active env location : /home/gmarkall/miniconda3/envs/numba-conda-forge shell level : 2 user config file : /home/gmarkall/.condarc populated config files : /home/gmarkall/.condarc conda version : 4.8.3 conda-build version : 3.18.11 python version : 3.7.4.final.0 virtual packages : __cuda=11.0 __glibc=2.27 base environment : /home/gmarkall/miniconda3 (writable) channel URLs : https://repo.anaconda.com/pkgs/main/linux-64 https://repo.anaconda.com/pkgs/main/noarch https://repo.anaconda.com/pkgs/r/linux-64 https://repo.anaconda.com/pkgs/r/noarch package cache : /home/gmarkall/miniconda3/pkgs /home/gmarkall/.conda/pkgs envs directories : /home/gmarkall/miniconda3/envs /home/gmarkall/.conda/envs platform : linux-64 user-agent : conda/4.8.3 requests/2.22.0 CPython/3.7.4 Linux/5.3.0-62-generic ubuntu/18.04.4 glibc/2.27 UID:GID : 1000:1000 netrc file : None offline mode : False ```