ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Numba 安装完全指南:conda / pip / 源码构建、CUDA 支持与版本兼容性详解

Numba 安装完全指南:conda / pip / 源码构建、CUDA 支持与版本兼容性详解 Numba 安装完全指南conda / pip / 源码构建、CUDA 支持与版本兼容性详解【免费下载链接】numbaNumPy aware dynamic Python compiler using LLVM项目地址: https://gitcode.com/gh_mirrors/nu/numba本指南以 Numba 官方安装文档docs/source/user/installing.rst为核心系统讲解 Numba 在主流平台上的三种安装方式——conda、pip 与源码编译涵盖 CUDA GPU 支持、构建期环境变量、完整依赖清单与版本兼容矩阵并给出安装后的验证手段。读完本文你将能够根据自身的操作系统、硬件与使用场景CPU 加速、CUDA GPU、源码开发或 AOT 编译选择最合适的安装路径并学会用numba -s快速诊断环境问题。一、安装前的兼容性检查支持平台与支持层级Numba 是一个基于 LLVM 的 NumPy 感知的动态 Python 编译器其安装体验与操作系统、CPU 架构及依赖版本密切相关。在开始安装之前请先确认你的平台处于官方支持范围内。官方支持平台根据安装文档Numba 官方支持以下平台Linux x86_64Linux arm64 / aarch-64Windows 10 及更新版本64 位OS X 11.0 及更新版本M1 / Arm64NVIDIA GPU计算能力 5.0 及以上计算能力 3.5 与 3.7 仍受支持但已进入弃用deprecated状态ARMv864 位小端如 NVIDIA JetsonLinux ppcle64例如 POWER8、POWER9非官方支持BSD仅非官方支持另外需要注意numba.parallel并行加速功能仅在 64 位平台上可用。支持层级Support Tiers政策Numba 的维护者将支持分为多个层级详见仓库中的 支持层级文档Tier 1由 Numba 维护者维护并通过公共 CI/CD 发布包括 conda 包Anaconda 的numba频道、Anaconda 发行版、conda-forge与 PyPI wheel覆盖osx-arm64、linux-64、linux-aarch64、win-64四种组合。Tier 1 的成立还依赖 Python、NumPy、LLVM 三个核心依赖的持续支持。Tier 1.5实验性发布配置如 Python 3.14 free-threading 构建的 wheel、Windows 64 位 ARM 的win-arm64允许存在明显 bug预期最终晋升到 Tier 1。Tier 2a由大型发行商构建如 RHEL/Fedora/Rocky、Debian/Ubuntu、各 BSD 发行版。Tier 2b社区尽力而为支持例如osx-64从 Numba 0.63.* 起、s390x、ppc64le、RISC-V等硬件目标。从源码结构看支持层级的定义与 buildscripts 下的 CI 构建配置以及 numba/core 中各后端的条件编译逻辑是配套的。选择安装渠道时应优先选用 Tier 1 的组合以获得稳定的发布节奏与维护保障。二、使用 conda 安装x86 / x86_64 / POWER 平台安装文档明确指出使用 conda 是安装 Numba 并保持更新的最简单方式。conda 是 Anaconda, Inc. 维护的跨平台包管理器与软件发行体系你可以选择Anaconda一次性下载包含科学计算全栈的分发版Miniconda只安装 conda 环境所需的最小包集合更轻量。安装好 conda 之后直接执行$ conda install numba需要升级时$ conda update numba文档特别提醒Numba 与 Anaconda 一样在 POWERPPC平台上仅支持 64 位小端little-endian模式。从仓库中的 conda 构建配方 buildscripts/condarecipe.local/meta.yaml 可以看出官方 conda 包的运行时约束Python ≥ 3.10、NumPy ≥ 1.22.3、llvmlite ≥ 0.51.0dev0 且 0.51对应开发通道同时对tbb 2021.6、libopenblas版本、cudatoolkit 11.2、scipy 1.0、cuda-python 11.6等都做了声明这些约束会保证 conda 求解器为你挑选一套经过测试的依赖组合。为 conda 安装启用 CUDA GPU 支持安装 NVIDIA 官方显卡驱动各平台最新的驱动可从 NVIDIA 官网获取。注意许多 Linux 发行版默认自带的开源 Nouveau 驱动不支持 CUDA必须更换为 NVIDIA 闭源驱动。安装 CUDA Toolkit 包无需安装 NVIDIA CUDA SDKconda 会提供所需组件CUDA 12需要cuda-nvcc与cuda-nvrtc$ conda install -c conda-forge cuda-nvcc cuda-nvrtc cuda-version12.0CUDA 11需要cudatoolkit$ conda install -c conda-forge cudatoolkit cuda-version11.2,12.0上述两条命令与 CUDA 文档docs/source/cuda/overview.rst中的 CUDA 安装指引一致conda 会把 CUDA 工具链组件安装进当前环境Numba 会按优先级依次在 Conda 安装的 CUDA Toolkit 包、CUDA_HOME环境变量指向的目录、Linux 系统级/usr/local/cuda中查找工具链详见下文CUDA 路径查找小节。三、使用 pip 安装Numba 官方在 PyPI 上提供了 Windows、Mac 和 Linux 的二进制 wheel可以直接用 pip 安装$ pip install numbapip 会一并下载所有必需的依赖。特别值得注意的是使用 Numba 不需要在本机安装 LLVM——事实上 Numba 会忽略系统上安装的任何 LLVM 版本因为所需的 LLVM 组件已内置于llvmlite的 wheel 中。这一点与源码构建需要自行编译 llvmlite形成鲜明对比。从 setup.py 的元数据可以看到 pip 安装时的依赖声明install_requiresllvmlite 0.51.0dev0,0.52与numpy 1.22.3setup_requires构建依赖numpy 1.11python_requires3.10同时_guard_py_ver()会在安装时校验当前 Python 版本必须满足3.10 version 3.16否则直接抛出错误。pip 安装后的 CUDA 支持与 conda 方式不同通过 pip 安装 Numba 后使用 CUDA需要自行从 NVIDIA 官网安装 CUDA SDKconda 方式则不需要。Numba 也能够在 Linux 上检测系统级安装的 CUDA 库。关于 CUDA 工具链的查找顺序详见下文。四、从源码安装 Numba构建环境与 llvmlite 的难点安装文档指出从源码安装 Numba 本身并不复杂与常规 Python 包类似真正的难点在于安装llvmlite——它需要一个特殊构建的 LLVM。因此如果是为了参与 Numba 开发推荐使用 conda 搭建开发环境详见 开发者文档的 Build environment 小节$ conda create -n numbaenv python3.10 numba/label/dev::llvmlite numpy scipy jinja2 cffi $ conda activate numbaenv其中numba/label/dev::llvmlite双冒号语法用于安装 llvmlite 的最新开发版本测试附加功能时还可能用到tbb与llvm-openmp。如果出于其他原因从源码构建首先必须按照 llvmlite 的安装指南完成 llvmlite 的构建然后再获取 Numba 源码$ git clone https://github.com/numba/numba.git最新的发布源码压缩包也可以在 PyPI 上找到。从源码构建所需的额外组件除 llvmlite 外还需要与你的 Python 安装兼容的 C 编译器。若使用 Anaconda官方推荐如下 conda 编译器包Linuxx86_64gcc_linux-64与gxx_linux-64LinuxPOWERgcc_linux-ppc64le与gxx_linux-ppc64leLinuxARM无 conda 编译器包使用系统自带编译器Mac OSXM1clang_osx-arm64与clangxx_osx-arm64Windows与所用 Python 版本匹配的 Visual Studio 版本NumPy构建与运行都需要构建并安装在源码树顶层执行$ python setup.py install如果你希望运行测试套件请参考 开发者文档中的测试运行说明。从源码看setup.py 的get_ext_modules()会编译一系列 C/C 扩展包括numba._dispatcher调度器核心、numba._helperlib、numba.core.typeconv._typeconv、numba.np.ufunc._internal、numba.core.runtime._nrt_python以及三个 ufunc 线程后端扩展tbbpool、omppool、workqueue等这些扩展共同构成了 Numba 的运行时基石。此外setup.py还会读取versioneer生成版本号并在 Linux 下设置Py_ENABLE_SHARED 0以便构建不含 libpython 依赖的 wheel对应 issue #2555 的处理。构建期环境变量与可选组件配置以下环境变量用于控制 Numba 构建时对可选组件的编译行为默认均未设置NUMBA_DISABLE_OPENMP默认未设置置为非空字符串可禁用 OpenMP 线程后端的编译。默认情况下Linux 与 Windows需要提供与上述编译器工具链兼容的 OpenMP C 头文件与运行时库且能被编译器通过标准参数找到OSXconda 包llvm-openmp提供合适的 C 头文件与库如果编译需求未满足OpenMP 线程后端将不会被编译即可用才编的降级策略。从 setup.py 的源码可以印证该逻辑os.getenv(NUMBA_DISABLE_OPENMP)为真时打印 OpenMP disabled否则在检测到 OpenMP 可用时编译numba.np.ufunc.omppool扩展macOS 上还会区分 Apple clang 与 conda clang分别使用-Xclang -fopenmp与-fopenmp编译参数链接时使用 Intel OpenMPlibiomp5。NUMBA_DISABLE_TBB默认未设置置为非空字符串可禁用 TBB 线程后端的编译。默认情况下编译期必须能找到 TBB 的 C 头文件与库使用conda build时可通过安装tbb-devel包满足版本 ≥ 2021.6非 conda build 场景可通过系统安装 TBB或设置TBBROOT环境变量指向 TBB 安装位置setup.py 中正是依次检查TBBROOT与 conda 常见位置来定位tbb.h。同样在 setup.py 中可以看到os.getenv(NUMBA_DISABLE_TBB)为真时打印 TBB disabled否则在找到 TBB 后编译numba.np.ufunc.tbbpool扩展并自动补充 Linuxlib/intel64/gcc4.4、macOSlib、Windowslib/intel64/vc_mt三个平台的库搜索路径。NUMBA_LAPACK_ILP64默认未设置这是一个比较隐蔽但极其重要的构建期选项选择 Numba 的 BLAS/LAPACK C 包装层是否调用 64 位ILP64Fortran 整数 ABI默认使用与 SciPy 默认一致的 32 位LP64ABI。要点如下该选择必须在运行时与scipy.linalg.cython_blas/cython_lapack的 ABI 匹配否则不会报出干净的错误而是产生错误结果或直接崩溃Numba 会在首次使用 BLAS/LAPACK 支持时进行检查发现不一致立即抛出异常要覆盖默认值在构建 numba 时设置NUMBA_LAPACK_ILP641构建时的选择会固化在编译产物中不会与二进制脱节可通过numba -s在 SciPy / LAPACK Information 一节查看。源码佐证setup.py 中的_detect_lapack_ilp64()读取NUMBA_LAPACK_ILP64是否为1并把结果通过NUMBA_LAPACK_BUILD_ILP64宏传给_helperlib扩展的编译而在 numba/misc/numba_sysinfo.py 中系统信息报告会同时显示 Numba 构建时_LAPACK_BUILD_ILP64与 SciPy 运行时_lapack_runtime_is_ilp64()的整数宽度并输出二者是否匹配LAPACK Int Width Match。五、依赖清单安装文档给出了截至 2020 年 7 月的完整依赖清单以下按类别完整整理构建期必需依赖setuptoolsnumpyllvmlite上文所述的编译器工具链运行期必需依赖numpyllvmlite构建期可选依赖关于这些可选组件的配置与说明参见上文构建期环境变量一节llvm-openmpOSX——提供将 OpenMP 支持编译进 Numba 线程后端所需的头文件tbb-devel——提供编译 TBB 支持所需的头文件/库版本 ≥ 2021.6运行期可选依赖scipy——提供 Numba 的np.linalg.*支持所需的 cython 绑定tbb——提供 Numba TBB 线程后端所需的运行时库版本 ≥ 2021jinja2——通过numbaCLI 输出漂亮的类型注解HTMLcffi——允许在 Numba 编译函数中使用 CFFI 绑定llvm-openmpOSX——为 Numba 的 OpenMP 线程后端提供库支持intel-openmpOSX——OpenMP 线程后端的替代 OpenMP 库ipython——若在使用缓存将使用 IPython 的缓存目录缓存功能仍可用pyyaml——允许使用.numba_config.yaml文件按项目存储配置colorama——启用错误消息高亮intel-cmplr-lib-rt——允许 Numba 使用 Intel SVML 获得额外性能pygments——用于漂亮类型注解输出gdb作为$PATH中的可执行文件——使用 gdb 调试支持setuptools——允许使用pycc进行预编译AOT编译上述编译器工具链——使用pycc进行 AOT 编译时需要r2pipe——汇编 CFG 检查所需radare2作为$PATH中的可执行文件——汇编 CFG 检查所需graphviz——部分 CFG 检查功能typeguard——runtests.py用于运行时类型检查cuda-python——NVIDIA CUDA Python 绑定版本 ≥ 11.6详见 CUDA Bindings 说明cubinlinker与ptxcompiler——用于支持 minor-version-compatibilityCUDA 次版本兼容构建文档所需依赖sphinxpygmentssphinx_rtd_themenumpydocmake作为$PATH中的可执行文件六、版本支持信息兼容矩阵安装文档中的版本支持信息表是关于哪些版本的依赖经过测试、已知可与特定 Numba 版本协同工作的权威参考。其他版本的依赖尤其是 NumPy可能也能正常工作但未经过测试。表格中的x表示支持该依赖的所有补丁级别?表示因信息缺失而未填写。Numba发布日期PythonNumPyllvmliteLLVMTBB0.68.0待定3.10.x ≤ v 3.161.22 ≤ v 1.272.0 ≤ v 2.60.50.x22.x≥ 2021.60.67.02026-08-113.10.x ≤ v 3.151.22 ≤ v 1.272.0 ≤ v 2.60.49.x22.x≥ 2021.60.66.02026-06-303.10.x ≤ v 3.151.22 ≤ v 1.272.0 ≤ v 2.50.48.x22.x≥ 2021.60.65.12026-04-233.10.x ≤ v 3.151.22 ≤ v 1.272.0 ≤ v 2.50.47.x20.x≥ 2021.60.65.02026-03-313.10.x ≤ v 3.151.22 ≤ v 1.272.0 ≤ v 2.50.47.x20.x≥ 2021.60.64.02026-02-183.10.x ≤ v 3.151.22 ≤ v 1.272.0 ≤ v 2.50.46.x20.x≥ 2021.60.63.12025-12-093.10.x ≤ v 3.151.22 ≤ v 1.272.0 ≤ v 2.40.46.x20.x≥ 2021.60.63.02025-12-083.10.x ≤ v 3.151.22 ≤ v 1.272.0 ≤ v 2.40.46.x20.x≥ 2021.60.62.12025-09-263.10.x ≤ v 3.141.22 ≤ v 1.272.0 ≤ v 2.40.45.x20.x≥ 2021.60.62.02025-09-183.10.x ≤ v 3.141.22 ≤ v 1.272.0 ≤ v 2.40.45.x20.x≥ 2021.60.61.22025-04-073.10.x ≤ v 3.141.24 ≤ v 1.272.0 ≤ v 2.30.44.x15.x≥ 2021.60.61.1未发布—————0.61.02025-01-163.10.x ≤ v 3.141.24 ≤ v 1.272.0 ≤ v 2.20.44.x15.x≥ 2021.60.60.02024-06-133.9.x ≤ v 3.131.22 ≤ v 1.27v 2.0 †0.43.x14.x≥ 2021.60.59.12024-03-183.9.x ≤ v 3.131.22 ≤ v 1.270.42.x14.x≥ 2021.60.59.02024-01-313.9.x ≤ v 3.131.22 ≤ v 1.270.42.x14.x≥ 2021.60.58.12023-10-173.8.x ≤ v 3.121.22 ≤ v 1.270.41.x14.x≥ 2021.60.58.02023-09-203.8.x ≤ v 3.121.22 ≤ v 1.260.41.x14.x≥ 2021.60.57.12023-06-213.8.x ≤ v 3.121.21 ≤ v 1.250.40.x14.x≥ 2021.60.57.02023-05-013.8.x ≤ v 3.121.21 ≤ v 1.250.40.x14.x≥ 2021.60.56.42022-11-033.7.x ≤ v 3.111.18 ≤ v 1.240.39.x11.x2021.x0.56.32022-10-133.7.x ≤ v 3.111.18 ≤ v 1.240.39.x11.x2021.x0.56.22022-09-013.7.x ≤ v 3.111.18 ≤ v 1.240.39.x11.x2021.x0.56.1未发布—————0.56.02022-07-253.7.x ≤ v 3.111.18 ≤ v 1.230.39.x11.x2021.x0.55.22022-05-253.7.x ≤ v 3.111.18 ≤ v 1.230.38.x11.x2021.x0.55.{0,1}2022-01-133.7.x ≤ v 3.111.18 ≤ v 1.220.38.x11.x2021.x0.54.x2021-08-193.6.x ≤ v 3.101.17 ≤ v 1.210.37.x11.x2021.x0.53.x2021-03-113.6.x ≤ v 3.101.15 ≤ v 1.210.36.x11.x2019.5 ≤ v 2021.40.52.x2020-11-303.6.x ≤ v 3.91.15 ≤ v 1.200.35.x10.xaarch64 为 9.x2019.5 ≤ v 2020.30.51.x2020-08-123.6.x ≤ v 3.91.15 ≤ v 1.190.34.x10.xaarch64 为 9.x2019.5 ≤ v 2020.00.50.x2020-06-103.6.x ≤ v 3.91.15 ≤ v 1.190.33.x9.x2019.5 ≤ v 2020.00.49.x2020-04-163.6.x ≤ v 3.91.15 ≤ v 1.180.31.x ≤ v 0.33.x9.x2019.5 ≤ v 2020.00.48.x2020-01-273.6.x ≤ v 3.91.15 ≤ v 1.180.31.x8.xppc64le 为 7.x2018.0.5 ≤ v ?0.47.x2020-01-023.5.x ≤ v 3.9v 2.7.x1.15 ≤ v 1.180.30.x8.xppc64le 为 7.x2018.0.5 ≤ v ?† 0.60.0 对 NumPy 2.0 的支持为仅二进制兼容binary compatibility only。表格中体现了一个重要规律Numba 版本与其 llvmlite、LLVM 版本严格绑定——例如 0.67.x 需要 llvmlite 0.49.x 与 LLVM 22.x0.65.x 需要 llvmlite 0.47.x 与 LLVM 20.x。这与 setup.py 中install_requires对 llvmlite 的上下界约束一致也从侧面解释了为什么 pip 安装时无需单独安装 LLVMNumba 依赖的是配套 llvmlite 内置的 LLVM。七、验证安装安装完成后建议按以下两步验证。1. Python 中导入 Numba$ python Python 3.10.2 | packaged by conda-forge | (main, Jan 14 2022, 08:02:09) [GCC 9.4.0] on linux Type help, copyright, credits or license for more information. import numba numba.__version__ 0.55.12. 运行numba -s即numba --sysinfonumba --sysinfo简写numba -s会输出关于系统能力与 Numba 安装情况的完整报告这是排查环境问题、提交 bug 报告时的标准工具。完整的 CLI 用法参见 命令行接口文档。文档给出的输出示例如下$ numba -s System info: -------------------------------------------------------------------------------- __Time Stamp__ Report started (local time) : 2022-01-18 10:35:08.981319 __Hardware Information__ Machine : x86_64 CPU Name : skylake-avx512 CPU Count : 12 CPU Features : 64bit adx aes avx avx2 avx512bw avx512cd avx512dq avx512f avx512vl bmi bmi2 clflushopt clwb cmov cx16 cx8 f16c fma fsgsbase fxsr invpcid lzcnt mmx movbe pclmul pku popcnt prfchw rdrnd rdseed rtm sahf sse sse2 sse3 sse4.1 sse4.2 ssse3 xsave xsavec xsaveopt xsaves __OS Information__ Platform Name : Linux-5.4.0-94-generic-x86_64-with-glibc2.31 Platform Release : 5.4.0-94-generic OS Name : Linux OS Version : #106-Ubuntu SMP Thu Jan 6 23:58:14 UTC 2022 __Python Information__ Python Compiler : GCC 9.4.0 Python Implementation : CPython Python Version : 3.10.2 Python Locale : en_GB.UTF-8 __LLVM information__ LLVM Version : 11.1.0 __CUDA Information__ Found 1 CUDA devices id 0 bQuadro RTX 8000 [SUPPORTED] Compute Capability: 7.5 PCI Device ID: 0 PCI Bus ID: 21 UUID: GPU-e6489c45-5b68-3b03-bab7-0e7c8e809643 Watchdog: Enabled FP32/FP64 Performance Ratio: 32 (output truncated due to length)从实现源码 numba/misc/numba_sysinfo.py 可以看出numba -s报告的完整内容远比上面的片段丰富共涵盖约 20 个板块时间戳报告本地时间、UTC 时间与运行耗时硬件信息机器架构、CPU 名称通过 LLVM 的get_host_cpu_name()获取、CPU 数量、可访问 CPU 列表、CFS 配额限制、CPU 特性get_host_cpu_features()、内存总量与可用量Linux 下读取/proc/meminfo与 cgroup 文件优先使用psutil缺失时自动降级并给出提示OS 信息平台名、发行版、内核版本、libc 版本Linux 下通过platform.libc_ver()Python 信息编译器、实现、版本、localeNumba 工具链版本Numba 版本与 llvmlite 版本LLVM 信息LLVM 版本CUDA 信息目标实现、驱动/运行时版本、NVIDIA CUDA Python 绑定可用性、minor-version-compatibility 相关状态、CUDA 检测输出与库测试输出NumPy 信息版本以及 NumPy 支持的 SIMD 特性/分发/基线SciPy / LAPACK 信息SciPy 版本、Numba 构建时的 ILP64 状态、SciPy 运行时的 ILP64 状态及两者是否匹配对应前文NUMBA_LAPACK_ILP64的运行时检查SVML 信息SVML 状态、库是否加载、LLVM 是否打过 SVML 补丁、SVML 是否可用线程层信息TBB / OpenMP / Workqueue 三个线程后端是否可用OpenMP 还会报告厂商如 IntelNumba 环境变量信息所有以NUMBA_开头的环境变量Conda 信息conda 构建/环境版本、平台、Python 版本、root 可写性已安装包列表conda list或pip list的输出错误日志与警告日志。这份报告对排查为什么并行不生效为什么 CUDA 检测不到等问题非常有价值。例如 CUDA 检测不到时报告会在 CUDA 板块与警告日志中给出具体原因驱动库找不到 / CUDA 被禁用 / 无可用设备等线程后端缺失时也会给出对应的导入错误解析结果。八、常见问题与故障排查指引结合安装文档与仓库源码以下场景值得特别留意numba命令找不到可能是PATH配置问题可用等效命令python -m numba两者等价仍失败则说明 Numba 未正确安装回到验证安装一节检查import numba。在 IPython/Jupyter 中可用!numba -s执行。OpenMP 后端未编译多数情况下是编译期缺少 OpenMP 头文件/库。OSX 安装llvm-openmpLinux/Windows 确保编译器工具链可找到 OpenMP或设置NUMBA_DISABLE_OPENMP显式禁用后改用 Workqueue 后端。TBB 后端未编译安装tbb-devel≥ 2021.6或设置TBBROOT指向 TBB 安装位置运行时还需要tbb库。LAPACK 整数宽度不匹配numba -s中 LAPACK Int Width Match 为 False 时说明构建期 ABI 与 SciPy 运行时 ABI 不一致通常不会干净报错而是错误结果/崩溃。由于构建期选择固化在二进制中需重新以匹配的NUMBA_LAPACK_ILP64设置构建。CUDA 检测不到按 CUDA 工具链查找文档 检查——Numba 依次在 Conda 安装的 CUDA Toolkit 包、CUDA_HOME指向的目录、Linux 系统级/usr/local/cuda中查找libcuda位于非标准位置时可设置NUMBA_CUDA_DRIVER指向其文件路径。同时确认使用的是 NVIDIA 官方驱动而非 Nouveau并可通过numba -s的 CUDA 板块获取具体错误信息。依赖版本不被接受pip 安装时若 Python 版本超出3.10 v 3.16setup.py 的_guard_py_ver()会直接拒绝安装conda 场景则由 meta.yaml 中的run_constrained约束如tbb 2021.6、libopenblas版本排除、cuda-version 11.2保证解析到兼容组合。九、总结安装 Numba 的路径选择可以概括为常规用户CPU 加速优先conda install numba或pip install numba后者无需关心 LLVM依赖已内置于 llvmlite wheelCUDA GPU 用户conda 方式只需安装 NVIDIA 驱动并安装cuda-nvcc/cuda-nvrtcCUDA 12或cudatoolkitCUDA 11pip 方式需额外安装 NVIDIA CUDA SDKNumba 会按 conda 环境 →CUDA_HOME→/usr/local/cuda的顺序自动查找开发者/定制构建先构建 llvmlite再以python setup.py install构建 Numba并通过NUMBA_DISABLE_OPENMP、NUMBA_DISABLE_TBB、NUMBA_LAPACK_ILP64三个环境变量控制可选组件任何场景安装后运行numba -s生成完整系统报告核对版本兼容矩阵确认各功能模块线程后端、CUDA、SVML、LAPACK状态正常。值得反复强调的是版本匹配Numba 与 llvmlite/LLVM 严格绑定参见第六节矩阵与 setup.py 的依赖上下界因此在升级或混用环境时优先使用 conda 或 pip 解析依赖避免手工混装不同版本的 NumPy/llvmlite/scipy 导致运行时错误或数值异常。【免费下载链接】numbaNumPy aware dynamic Python compiler using LLVM项目地址: https://gitcode.com/gh_mirrors/nu/numba创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表