python3Packages.numba: 0.56.2 -> 0.56.4, fix tests and CUDA
This commit is contained in:
parent
8f9d1901d0
commit
ca26799634
@ -1,5 +1,5 @@
|
|||||||
diff --git a/numba/cuda/cuda_paths.py b/numba/cuda/cuda_paths.py
|
diff --git a/numba/cuda/cuda_paths.py b/numba/cuda/cuda_paths.py
|
||||||
index b9988bc..a642680 100644
|
index 0da435d33..7b1fde087 100644
|
||||||
--- a/numba/cuda/cuda_paths.py
|
--- a/numba/cuda/cuda_paths.py
|
||||||
+++ b/numba/cuda/cuda_paths.py
|
+++ b/numba/cuda/cuda_paths.py
|
||||||
@@ -24,10 +24,7 @@ def _find_valid_path(options):
|
@@ -24,10 +24,7 @@ def _find_valid_path(options):
|
||||||
@ -14,15 +14,12 @@ index b9988bc..a642680 100644
|
|||||||
]
|
]
|
||||||
by, libdir = _find_valid_path(options)
|
by, libdir = _find_valid_path(options)
|
||||||
return by, libdir
|
return by, libdir
|
||||||
@@ -35,18 +32,16 @@ def _get_libdevice_path_decision():
|
@@ -35,16 +32,14 @@ def _get_libdevice_path_decision():
|
||||||
|
|
||||||
def _nvvm_lib_dir():
|
def _nvvm_lib_dir():
|
||||||
if IS_WIN32:
|
if IS_WIN32:
|
||||||
- return 'nvvm', 'bin'
|
- return 'nvvm', 'bin'
|
||||||
+ return 'bin',
|
+ return 'bin',
|
||||||
elif IS_OSX:
|
|
||||||
- return 'nvvm', 'lib'
|
|
||||||
+ return 'lib',
|
|
||||||
else:
|
else:
|
||||||
- return 'nvvm', 'lib64'
|
- return 'nvvm', 'lib64'
|
||||||
+ return 'lib64',
|
+ return 'lib64',
|
||||||
@ -33,13 +30,13 @@ index b9988bc..a642680 100644
|
|||||||
- ('Conda environment', get_conda_ctk()),
|
- ('Conda environment', get_conda_ctk()),
|
||||||
- ('CUDA_HOME', get_cuda_home(*_nvvm_lib_dir())),
|
- ('CUDA_HOME', get_cuda_home(*_nvvm_lib_dir())),
|
||||||
- ('System', get_system_ctk(*_nvvm_lib_dir())),
|
- ('System', get_system_ctk(*_nvvm_lib_dir())),
|
||||||
+ ('Nix store', get_nix_ctk(*_nvvm_lib_dir())),
|
+ ('Nix store', get_nix_ctk(*_nvvm_lib_dir())),
|
||||||
]
|
]
|
||||||
by, path = _find_valid_path(options)
|
by, path = _find_valid_path(options)
|
||||||
return by, path
|
return by, path
|
||||||
@@ -74,14 +69,12 @@ def _cudalib_path():
|
@@ -64,14 +59,12 @@ def _cudalib_path():
|
||||||
elif IS_OSX:
|
if IS_WIN32:
|
||||||
return 'lib'
|
return 'bin'
|
||||||
else:
|
else:
|
||||||
- return 'lib64'
|
- return 'lib64'
|
||||||
+ return 'lib'
|
+ return 'lib'
|
||||||
@ -54,7 +51,7 @@ index b9988bc..a642680 100644
|
|||||||
]
|
]
|
||||||
by, libdir = _find_valid_path(options)
|
by, libdir = _find_valid_path(options)
|
||||||
return by, libdir
|
return by, libdir
|
||||||
@@ -92,6 +85,22 @@ def _get_cudalib_dir():
|
@@ -82,6 +75,22 @@ def _get_cudalib_dir():
|
||||||
return _env_path_tuple(by, libdir)
|
return _env_path_tuple(by, libdir)
|
||||||
|
|
||||||
|
|
||||||
|
@ -11,6 +11,8 @@
|
|||||||
, libcxx
|
, libcxx
|
||||||
, importlib-metadata
|
, importlib-metadata
|
||||||
, substituteAll
|
, substituteAll
|
||||||
|
, runCommand
|
||||||
|
, fetchpatch
|
||||||
|
|
||||||
# CUDA-only dependencies:
|
# CUDA-only dependencies:
|
||||||
, addOpenGLRunpath ? null
|
, addOpenGLRunpath ? null
|
||||||
@ -23,14 +25,14 @@
|
|||||||
let
|
let
|
||||||
inherit (cudaPackages) cudatoolkit;
|
inherit (cudaPackages) cudatoolkit;
|
||||||
in buildPythonPackage rec {
|
in buildPythonPackage rec {
|
||||||
version = "0.56.2";
|
version = "0.56.4";
|
||||||
pname = "numba";
|
pname = "numba";
|
||||||
format = "setuptools";
|
format = "setuptools";
|
||||||
disabled = pythonOlder "3.6" || pythonAtLeast "3.11";
|
disabled = pythonOlder "3.6" || pythonAtLeast "3.11";
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
hash = "sha256-NJLwpdCeJX/FIfU3emxrkH7sGSDRRznwskWLnSmUalo=";
|
hash = "sha256-Mtn+9BLIFIPX7+DOts9NMxD96LYkqc7MoA95BXOslu4=";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
@ -55,7 +57,15 @@ in buildPythonPackage rec {
|
|||||||
cudatoolkit.lib
|
cudatoolkit.lib
|
||||||
];
|
];
|
||||||
|
|
||||||
patches = lib.optionals cudaSupport [
|
patches = [
|
||||||
|
# fix failure in test_cache_invalidate (numba.tests.test_caching.TestCache)
|
||||||
|
# remove when upgrading past version 0.56
|
||||||
|
(fetchpatch {
|
||||||
|
name = "fix-test-cache-invalidate-readonly.patch";
|
||||||
|
url = "https://github.com/numba/numba/commit/993e8c424055a7677b2755b184fc9e07549713b9.patch";
|
||||||
|
hash = "sha256-IhIqRLmP8gazx+KWIyCxZrNLMT4jZT8CWD3KcH4KjOo=";
|
||||||
|
})
|
||||||
|
] ++ lib.optionals cudaSupport [
|
||||||
(substituteAll {
|
(substituteAll {
|
||||||
src = ./cuda_path.patch;
|
src = ./cuda_path.patch;
|
||||||
cuda_toolkit_path = cudatoolkit;
|
cuda_toolkit_path = cudatoolkit;
|
||||||
@ -70,18 +80,40 @@ in buildPythonPackage rec {
|
|||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Copy test script into $out and run the test suite.
|
# run a smoke test in a temporary directory so that
|
||||||
|
# a) Python picks up the installed library in $out instead of the build files
|
||||||
|
# b) we have somewhere to put $HOME so some caching tests work
|
||||||
|
# c) it doesn't take 6 CPU hours for the full suite
|
||||||
checkPhase = ''
|
checkPhase = ''
|
||||||
${python.interpreter} -m numba.runtests
|
runHook preCheck
|
||||||
'';
|
|
||||||
|
|
||||||
# ImportError: cannot import name '_typeconv'
|
pushd $(mktemp -d)
|
||||||
doCheck = false;
|
HOME=. ${python.interpreter} -m numba.runtests -m $NIX_BUILD_CORES numba.tests.test_usecases
|
||||||
|
popd
|
||||||
|
|
||||||
|
runHook postCheck
|
||||||
|
'';
|
||||||
|
|
||||||
pythonImportsCheck = [
|
pythonImportsCheck = [
|
||||||
"numba"
|
"numba"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
passthru.tests = {
|
||||||
|
# CONTRIBUTOR NOTE: numba also contains CUDA tests, though these cannot be run in
|
||||||
|
# this sandbox environment. Consider running similar commands to those below outside the
|
||||||
|
# sandbox manually if you have the appropriate hardware; support will be detected
|
||||||
|
# and the corresponding tests enabled automatically.
|
||||||
|
# Also, the full suite currently does not complete on anything but x86_64-linux.
|
||||||
|
fullSuite = runCommand "${pname}-test" {} ''
|
||||||
|
pushd $(mktemp -d)
|
||||||
|
# pip and python in $PATH is needed for the test suite to pass fully
|
||||||
|
PATH=${python.withPackages (p: [ p.numba p.pip ])}/bin:$PATH
|
||||||
|
HOME=$PWD python -m numba.runtests -m $NIX_BUILD_CORES
|
||||||
|
popd
|
||||||
|
touch $out # stop Nix from complaining no output was generated and failing the build
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Compiling Python code using LLVM";
|
description = "Compiling Python code using LLVM";
|
||||||
homepage = "https://numba.pydata.org/";
|
homepage = "https://numba.pydata.org/";
|
||||||
|
Loading…
Reference in New Issue
Block a user