ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Numba 源码仓库结构导航:从构建脚本到编译器流水线的完整地图

Numba 源码仓库结构导航:从构建脚本到编译器流水线的完整地图 编译器高性能计算【免费下载链接】numbaNumPy aware dynamic Python compiler using LLVM项目地址https://gitcode.com/gh_mirrors/nu/numba点击查看免费下载Numba 是一个基于 LLVM 的 NumPy 感知动态 Python 编译器经过多年演进其仓库已相当庞大功能模块分散在多处。本文以仓库官方开发者指南 docs/source/developer/repomap.rst 为骨架逐层拆解仓库各目录与文件的职责从构建打包、持续集成、文档体系到编译器流水线、类型系统、目标实现、ParallelAccelerator、CUDA GPU 目标与测试体系。读完本文你将获得一份可直接对照源码文件进行深入学习的仓库级导航图知道“某个功能该去哪个文件找实现”。支持性文件构建、打包与 CI仓库根目录下聚集了一批与构建、打包和持续集成相关的支持文件它们虽然不是 Numba 的核心代码却决定了项目如何被编译、分发与验证。构建与打包文件/目录作用setup.py标准 Python distutils/setuptools 脚本负责包元数据、扩展模块编译等MANIFEST.indistutils 打包指令控制 sdist 中包含哪些文件requirements.txtpip 依赖声明注意conda 构建不使用它conda 依赖由 recipe 单独声明versioneer.py根据 git 标签自动为安装包设置版本号.flake8代码格式检查偏好配置仓库维护者的规划是逐步修复异常列表中的文件并将其移除.readthedocs.ymlRead the Docs 文档站点构建配置buildscripts/condarecipe.localconda 构建配方meta.yaml、bld.bat、run_test 等从实际目录看buildscripts/condarecipe.local 下确实包含meta.yaml、conda_build_config.yaml、bld.bat、run_test.bat与run_test.sh对应 Linux/Windows/macOS 的 conda 构建与测试入口。versioneer.py与 numba/_version.py 配合后者由 versioneer 在打包时自动更新。持续集成azure-pipelines.ymlAzure Pipelines CI 主配置当前覆盖 Win/Mac/Linux 三大平台buildscripts/azure/针对具体平台的 Azure Pipeline 配置azure-linux-macos.yml、azure-windows.ymlbuildscripts/incremental/在各种 CI 系统上构建 Numba 的通用脚本如setup_conda_environment.sh、install_miniconda.sh、after_success.shbuildscripts/github/GitHub 侧辅助脚本包括 wheel 构建、修补与内容校验build_wheel_linux.sh、repair_wheel_linux.sh、patch_wheel_dylib.py、test_wheel_contents.py等codecov.ymlCodecov.io 覆盖率上报配置此外 buildscripts/gpuci/axis.yaml 用于 GPU CI 的构建矩阵。文档体系LICENSENumba 的许可证LICENSES.third-party随 Numba 一起 vendored 的第三方代码许可证清单README.rst仓库 README同时上传到 PyPICONTRIBUTING.md贡献指南原文档注明其已过时应更新指向 Sphinx 文档CHANGE_LOGNumba 版本发布历史也被直接嵌入 Sphinx 文档见 docs/source/release-notes.rst 及其在 docs/source/release/ 下的分版本 notesdocs/文档源目录其中docs/source 为 ReST 格式的文档源码按developer/、user/、reference/、cuda/、cuda-reference/、extending/、proposals/、release/、upcoming_changes/等子目录组织docs/_templates/ 存放用于覆盖 Sphinx 主题默认值的模板当前仅一个EMPTY占位文件docs/_static/ 存放文档的静态 CSS 与图片资源如rtd-overrides.css、两个 numba 图标 svgdocs/Makefile 用于通过make构建 Sphinx 文档另有 docs/make.bat原文档标注“未使用或可删除”numba/scripts/generate_lower_listing.py转储所有以lower*装饰器注册的实现用于生成参考文档原文档指出它目前会遗漏更高级扩展 API如overload注册的实现。Numba 源码组织一个包内同时发布源码与测试整个numba/目录同时包含源码与测试随同一个包发布。下面按“公共 API → 分派 → 编译器流水线 → 类型管理 → 编译扩展 → 杂项支持 → 核心数据类型 → 数学 → ParallelAccelerator → Stencil → 调试支持 → 类型签名 → 目标实现 → ufunc → 测试 → 命令行 → CUDA”的顺序逐一展开。公共 API这些模块定义了 Numba 面向用户的公开接口numba/core/decorators.py面向用户的 CPU 端编译装饰器即jit家族jit、njit等。其jit()签名支持signature_or_function、locals局部变量类型覆盖映射、pipeline_class自定义编译流水线类型、boundscheck以及nopython、forceobj、looplift、error_model、inline等编译选项numba/core/extending.py面向扩展开发者的公开装饰器如overload、intrinsic、register_jitable等numba/experimental/structref.py定义可变结构体的公共 APIStructRef体系numba/core/ccallback.pycfunc装饰器将函数编译为固定 C 签名用于构造回调numba/np/ufunc/decorators.pyufunc/gufunc 编译装饰器vectorize、guvectorizenumba/core/config.pyNumba 全局配置选项与环境变量处理。从源码看它还支持用户配置文件.numba_config.yaml需安装 PyYAML 才启用并包含NUMBA_*系列环境变量的解析逻辑numba/core/annotations收集并打印 Numba IR 的类型注解numba/core/annotations/pretty_annotate.py对 Numba 函数与类型做代码高亮同时支持 ANSI 终端与 HTMLnumba/core/event.py轻量事件系统应用程序可注册回调监听特定编译器事件。内置事件包括numba:compiledispatcher 编译时触发data 为含dispatcher/args/return_type的字典、numba:compiler_lock、numba:llvm_lock与numba:run_pass注册接口为register(kind, listener)。分派Dispatchingnumba/core/dispatcher.pydispatcher 对象即jit产生的“编译后函数”对不同类型签名持有不同实现。它依赖numba._dispatcher扩展并封装了缓存NullCache/FunctionCache、序列化与签名规范化numba/_dispatcher.cppC 实现的 dispatcher 核心用于常见数据类型下的高速分派。编译器流水线Compiler Pipeline这是理解 Numba 如何工作的核心模块群从字节码到 LLVM 的完整链路numba/core/compiler.py编译器流水线与编译标志的定义是各 pass 的编排者numba/core/errors.pyNumba 异常与警告类numba/core/ir.pyNumba IR 数据结构对象numba/core/bytecode.py字节码解析与函数身份识别numba/core/interpreter.py将 Python 解释器字节码翻译为 Numba IRnumba/core/analysis.pyNumba IR 分析工具变量生命周期、分支剪枝等numba/core/controlflow.py对 Numba IR 与 Python 字节码的控制流分析numba/core/typeinfer.py类型推断算法numba/core/transforms.pyNumba IR 变换numba/core/rewrites编译器使用的重写 pass 集合其中numba/core/rewrites/init.py 负责加载所有重写 pass 并注册到 registrynumba/core/rewrites/registry.py 为重写 pass 的注册表对象numba/core/rewrites/ir_print.py 将print()调用改写为 IR 中的特殊打印节点numba/core/rewrites/static_raise.py 将带静态参数的异常转换为可 lower 的特殊形式numba/core/rewrites/static_getitem.py 将常量参数的 getitem/setitem 重写以利于类型推断numba/core/rewrites/static_binop.py 将带常量参数的二元运算尤其是**重写从而生成更快的代码numba/core/inline_closurecall.py将闭包函数体内联到调用点支撑数组推导、reduction 内联与 stencil 内联numba/core/postproc.pyNumba IR 后处理器计算变量生命周期、插入 del 操作并处理生成器numba/core/lowering.py将 Numba IR lower 为 LLVM 的通用实现numba/core/environment.py运行时环境对象numba/core/withcontexts.py在 nopython 模式下实现上下文管理器的一般脚手架以及 objectmode 上下文管理器numba/core/pylowering.pyobject 模式下的 Numba IR lower 实现numba/core/pythonapi.py生成与 CPython API 交互的 LLVM IRnumba/core/targetconfig.py目标配置如编译器标志的工具函数。类型管理Type Managementnumba/core/typeconv/类型转换与类型签名匹配的实现Ctypeconv.cpp、_typeconv.cpp与 Pythoncastgraph.py、rules.py、typeconv.py双实现另有测试用test.cppnumba/core/types/Numba 类型层级定义编译器各处都依赖它来选择实现numba/core/consts.py常量推断尽量在代码生成阶段就提供常量值numba/core/datamodel不同类型在不同上下文中的 LLVM IR 数据表示numba/core/datamodel/models.py 为大多数标准类型的数据模型numba/core/datamodel/registry.py 提供注册新数据模型的装饰器numba/core/datamodel/packer.py 将类型化值打包进数据结构numba/core/datamodel/testing.py 为数据模型测试原文档备注“可能应移动位置”numba/core/datamodel/manager.py 将类型映射到数据模型。编译扩展Compiled ExtensionsNumba 用少量 C/C 代码实现核心功能分派、类型匹配等对性能敏感且更适合直接封装 CPython API 交互的部分numba/_arraystruct.h保存 NumPy 数组属性的结构体用于 helperlib 与 Numba Runtimenumba/_helperlib.cNumba 编译代码运行时所需的 C 函数链接进 ahead-of-time 编译模块numba/_helpermod.c导出_helperlib.c函数指针的 Python 扩展模块numba/_dynfuncmod.c导出_dynfunc.c功能的 Python 扩展模块numba/_dynfunc.cC 层的 Environment 与 Closure 对象需与 numba/core/base.py 保持同步numba/mathnames.h定义数学函数名称的宏numba/_pymodule.hPython 2/3 可移植命名的 C API 函数宏numba/mviewbuf.c处理 Python memoryviewnumba/_typeof.h、numba/_typeof.cpp类型指纹type fingerprinting的 C 实现供 dispatcher 使用numba/_numba_common.h可移植 C 宏用于标记可在目标文件之间共享但不能导出库外的符号。杂项支持Misc Supportnumba/_version.py由 versioneer 更新numba/core/runtime语言运行时当前负责管理 Numba 编译函数在堆上分配的引用计数内存NRT包含nrt.h/nrt.cpp、nrt.py、context.py、nrtdynmod.py、nrtopt.py与_nrt_python.c等numba/core/ir_utils.pyNumba IR 数据结构操作工具numba/core/cgutils.py生成常见 LLVM IR 代码模式的工具numba/core/utils.pyPython 2 兼容 backports内含本地six副本numba/misc/appdirs.pyvendored 的应用配置目录定位包numba/misc/POST.py上电自检POST脚本CI 用它确认测试运行器与编译可用numba/core/compiler_lock.py全局编译器锁——Numba 对 LLVM 的使用并非线程安全numba/misc/special.py特殊 Numba 函数prange、gdb*的 Python 桩实现numba/core/itanium_mangler.pyItanium C 名称修饰name mangling的 Python 实现numba/misc/findlib.py跨平台定位共享库的辅助函数numba/core/debuginfo.py构造 LLVM IR 调试信息numba/core/unsafe/refcount.py读取对象的引用计数numba/core/unsafe/eh.py异常处理辅助numba/core/unsafe/nrt.pyNRT 运行时辅助numba/cpython/unsafe/tuple.py替换 tuple 槽位中的值numba/np/unsafe/ndarray.pyNumPy 数组辅助numba/core/unsafe/bytes.py从 void 指针拷贝/解引用数据numba/core/callwrapper.py处理参数 unboxing以及在从 Python 进入 nopython 模式时释放 GILnumba/np/numpy_support.pyNumPy 交互辅助在 Numba 类型与 NumPy dtype 之间双向转换numba/core/tracing.py追踪 Python 调用并输出日志消息的装饰器numba/core/funcdesc.py描述函数元数据的类编译器内部使用numba/core/sigutils.py解析与规范化 Numba 类型签名numba/core/serialize.py编译函数的 pickle 支持numba/core/caching.py编译函数的磁盘缓存numba/np/npdatetime.pyNumPy datetime64 支持辅助函数numba/misc/llvm_pass_timings.py记录 LLVM pass 耗时numba/cloudpicklevendored 的 cloudpickle 子包cloudpickle.py、cloudpickle_fast.py。核心 Python 数据类型numba/_hashtable.h、numba/_hashtable.cppPython 3.7 哈希表实现的移植/改编numba/cext/dictobject.h、numba/cext/dictobject.c类型化字典的 C 层实现numba/typed/dictobject.pynopython 模式的类型化字典包装numba/cext/listobject.h、numba/cext/listobject.c类型化列表的 C 层实现numba/typed/listobject.pynopython 模式的类型化列表包装numba/typed/typedobjectutils.py类型化字典与列表的公共工具numba/cpython/unicode.pyUnicode 字符串Python 3.5numba/typed静态类型容器的 Python 接口numba/typed/typeddict.py类型化字典的 Python 接口numba/typed/typedlist.py类型化列表的 Python 接口numba/experimental/jitclassPython 类的实验性 JIT 编译实现含base.py、boxing.py、decorators.py与 C 扩展_box.cnumba/core/generators.pyPython 生成器的 lower 支持。数学相关numba/_random.cNumPy / CPython 随机数生成器的重实现numba/_lapack.cBLAS 与 LAPACK 函数的调用包装依赖 SciPy。ParallelAccelerator从函数中提取可并行化代码并转换为多线程 gufunc 调用的代码变换 passnumba/parfors/parfor.pyParallelAccelerator 主体。从源码看它将 NumPy 调用等数据并行操作转换为可并行化的嵌套循环 “Parfor” 节点并实现循环融合等优化与 Julia 的 ParallelAccelerator 思路类似numba/parfors/parfor_lowering.pyParallelAccelerator 的 gufunc loweringnumba/parfors/array_analysis.pyParallelAccelerator 使用的数组分析 pass。Stencilstencil的实现包含两套numba/stencils/stencil.pystencil 函数装饰器不依赖 ParallelAccelerator 的实现numba/stencils/stencilparfor.py基于 ParallelAccelerator 的 stencil 实现。调试支持numba/misc/gdb_hook.py在 nopython 模式中跳入 GDB 的钩子numba/misc/cmdlang.gdb从 Python 设置显式断点的 GDB 命令脚本。类型签名CPU部分通常较老Numba 功能将允许的类型签名声明与实现定义分离本包存放类型推断阶段必须匹配的类型签名注册表numba/core/typing类型签名模块numba/core/typing/templates.py类型签名模板的基类AbstractTemplate、infer_global等numba/core/typing/cmathdecl.pycmath模块numba/core/typing/bufproto.py缓冲协议对象解释numba/core/typing/mathdecl.pymath模块numba/core/typing/listdecl.pyPython 列表numba/core/typing/builtins.pyPython 内建全局函数与运算符numba/core/typing/setdecl.pyPython 集合numba/core/typing/npydecl.pyNumPy ndarray及运算符与 NumPy 函数numba/core/typing/arraydecl.pyPythonarray模块注意实际目录下此文件为数组声明相关实现numba/core/typing/context.pytyping context 实现——收集类型推断所使用方法的核心类numba/core/typing/collections.py通用容器操作与 namedtuplesnumba/core/typing/ctypes_utils.pyctypes 包装函数指针的 typingnumba/core/typing/enumdecl.py枚举类型numba/core/typing/cffi_utils.pyCFFI 对象 typingnumba/core/typing/typeof.pytypeof操作实现将 Python 对象映射到 Numba 类型含Purpose枚举numba/core/typing/asnumbatype.pyas_numba_type操作实现将 Python 类型映射到 Numba 类型。目标实现CPU这些模块实现 Python / NumPy 函数及部分数据模型负责在 lowering 阶段生成 LLVM IR。注意其中部分模块在 typing 包中没有对应物因为较新的 Numba 扩展 API如overload允许 typing 与实现一同指定。numba/core/cpu.pyCPU 端代码生成上下文numba/core/base.py所有目标上下文的基类numba/core/codegen.py代码生成驱动numba/core/boxing.py大多数数据类型的 boxing 与 unboxingnumba/core/intrinsics.py将 LLVM intrinsics 转换为其他数学调用的工具numba/core/callconv.pyNumba 编译函数的不同调用约定numba/core/options.py控制 lowering 的选项容器numba/core/optional.py表示“值或 None”的特殊类型numba/core/registry.py收集特定目标实现的注册表numba/core/imputils.pylowering 辅助函数numba/core/externals.py注册链接生成代码所需的外部 C 函数numba/core/fastmathpass.py为函数调用点与二元运算添加 fastmath 属性的重写 passnumba/core/descriptors.py所有目标描述符的空基类numba/cpython/builtins.pyPython 内建函数与运算符numba/cpython/cmathimpl.pycmath模块实现numba/cpython/enumimpl.py枚举对象numba/cpython/hashing.py哈希算法numba/cpython/heapq.pyheapq模块numba/cpython/iterators.py可迭代数据类型与迭代器numba/cpython/listobj.pyPython 列表numba/cpython/mathimpl.pymath模块实现numba/cpython/numbers.py数值类型int、float 等numba/cpython/printimpl.pyprint函数实现numba/cpython/randomimpl.pyPython 与 NumPyrandom模块numba/cpython/rangeobj.pyrange对象numba/cpython/slicing.py切片对象与切片索引计算numba/cpython/setobj.pyPython 集合类型numba/cpython/tupleobj.py元组作为不可变结构体静态类型化numba/misc/cffiimpl.pyCFFI 函数实现numba/misc/quicksort.py用于 list 与 array 对象的快速排序实现numba/misc/mergesort.py用于 array 对象的归并排序实现numba/np/arraymath.py数组上的数学运算Python 与 NumPynumba/np/arrayobj.py数组操作NumPy 与缓冲协议numba/np/linalg.pyNumPy 线性代数运算numba/np/npdatetime.pyNumPy datetime 运算numba/np/npyfuncs.py生成部分 NumPy ufunc 所需的内核numba/np/npyimpl.py大多数 NumPy ufunc 的实现numba/np/polynomial/polynomial_functions.pyNumPyPolynomial函数实现numba/np/polynomial/polynomial_core.pyNumPyPolynomial类实现numba/np/ufunc_db.py将类型映射到 ufunc 实现的大表numba/np/types/datetime.pydatetime 与 timedelta 数据类型支持。ufunc 编译器与运行时numba/np/ufuncufunc 编译器实现numba/np/ufunc/_internal.h、numba/np/ufunc/_internal.c使用 CPython 与 NumPy C API 的辅助函数 Python 扩展模块numba/np/ufunc/_ufunc.c被_internal.c使用numba/np/ufunc/gufunc_scheduler.h、numba/np/ufunc/gufunc_scheduler.cpp将工作块调度到线程numba/np/ufunc/dufunc.py可在调用时编译新实现的特殊 ufunc动态 ufuncnumba/np/ufunc/ufuncbuilder.pyufunc/gufunc 编译流水线的顶层编排numba/np/ufunc/sigparse.py广义 ufunc 索引签名解析器numba/np/ufunc/parallel.pyparallel目标的代码生成numba/np/ufunc/array_exprs.py将常规函数中的数组表达式转换为 ufunc 的重写 passnumba/np/ufunc/wrappers.py用循环包装标量函数内核numba/np/ufunc/workqueue.h、numba/np/ufunc/workqueue.c基于 pthreads/Windows 线程与队列的线程后端numba/np/ufunc/omppool.cpp基于 OpenMP 的线程后端numba/np/ufunc/tbbpool.cpp基于 TBB 的线程后端。单元测试CPUCPU 单元测试GPU 目标测试见后续 CUDA 小节runtests.py便捷脚本启动测试运行器并打开完整编译器 traceback.coveragerccoverage.py 配置numba/runtests.pyunittest 运行器入口numba/testing/_runtests.py自定义测试运行器命令行界面的实现numba/tests/test_*测试用例numba/tests/*_usecases.py被部分单元测试编译的 Python 函数numba/tests/support.py测试辅助函数与专门的 TestCase 实现numba/tests/dummy_module.pytest_dispatcher.py中使用的模块numba/tests/npyufuncufunc/gufunc 编译器测试numba/testing测试支持代码numba/testing/loader.py在磁盘上发现测试numba/testing/notebook.pynotebook 测试支持numba/testing/main.pyNumba 测试运行器。命令行工具bin/numba命令行存根委托给numba_entry.py的 mainnumba/misc/numba_entry.pynumba命令行工具的主函数numba/pycc将函数 ahead-of-time 编译为共享库扩展numba/pycc/init.pypycc命令行工具主函数numba/pycc/cc.py面向用户的、标记待 AOT 编译函数的 APInumba/pycc/compiler.py创建独立 Python 扩展模块的编译流水线numba/pycc/llvm_types.pycompiler.py使用的 LLVM 数据类型别名numba/pycc/modulemixin.c编译进每个扩展的 C 文件引入使扩展独立运行所需的 Numba 核心 C 源码numba/pycc/platform.py平台相关编译器工具链的可移植接口numba/pycc/decorators.py已弃用的标记编译函数装饰器请改用cc.py。CUDA GPU 目标CUDA 目标复用了 CPU 目标的部分组件其整体实现位于numba/cuda/numba/cuda/CUDANVIDIA GPU目标的实现与关联单元测试numba/cuda/decorators.pyCUDA 内核与设备函数的编译装饰器numba/cuda/deviceufunc.pyCUDA 专用 ufunc 分派numba/cuda/dispatcher.pyCUDA JIT 函数的 dispatchernumba/cuda/printimpl.py设备端打印的特殊实现numba/cuda/libdevice.py注册 libdevice 函数numba/cuda/kernels/reduction 与 transpose 的自定义内核numba/cuda/device_init.py导入时初始化 CUDA 目标numba/cuda/compiler.pyCUDA 目标编译流水线numba/cuda/intrinsic_wrapper.pyCUDA 设备 intrinsicsshuffle、ballot 等numba/cuda/initialize.pyCUDA 设备与子系统的延迟初始化仅在用户import numba.cuda时调用numba/cuda/simulator_init.pyCUDA 模拟器子系统初始化仅当用户通过环境变量请求时numba/cuda/random.py随机数生成器实现numba/cuda/api.py导入到numba.cuda.*的用户面向 APInumba/cuda/stubs.py仅能在 GPU 设备代码中使用的函数的 Python 占位numba/cuda/simulator/在 Python 解释器中模拟 CUDA 内核执行numba/cuda/vectorizers.pyCUDA 的 ufunc/gufunc 编译器子类numba/cuda/args.py内核参数管理包括 host↔device 传输numba/cuda/target.pyGPU 的 typing 与 target 上下文numba/cuda/cudamath.pyCUDA Python 中数学函数的类型签名numba/cuda/errors.py内核启动配置校验numba/cuda/nvvmutils.py生成 NVVM 专用 IR 的辅助函数numba/cuda/testing.py创建 CUDA 单元测试与捕获标准输出的支持代码numba/cuda/cudadecl.pyGPU 上 CUDA APIthreadIdx、blockIdx、atomics的类型签名numba/cuda/cudaimpl.pyGPU 上 CUDA API 函数的实现numba/cuda/codegen.pyCUDA 目标的代码生成器对象numba/cuda/cudadrv/CUDA 驱动 API 的 Python 包装numba/cuda/cudadrv/dummyarray.py在主机端保存数组信息不含数据numba/cuda/tests/CUDA 单元测试未检测到 CUDA 时跳过按子目录细分numba/cuda/tests/cudasim/CUDA 模拟器测试numba/cuda/tests/nocuda/无 CUDA 环境下 NVVM 功能测试numba/cuda/tests/cudapy/为 GPU 编译 Python 函数的测试numba/cuda/tests/cudadrv/CUDA API Python 包装的测试。进一步阅读建议编译器流水线的完整过程可对照 docs/source/developer/architecture.rst 与 docs/source/developer/bytecode.rst分派机制细节见 docs/source/developer/dispatching.rst类型推断相关背景可读 docs/source/proposals/type-inference.rstNRT 运行时的内存管理见 docs/source/developer/numba-runtime.rstCUDA 目标的用户视角文档位于 docs/source/cuda/。这份地图覆盖了仓库中绝大多数文件从根目录的构建/CI 配置到numba/core的编译器流水线再到numba/cuda的 GPU 目标。开发者可以以此为索引按“公共 API → 分派 → 编译 → 类型 → lowering → 目标实现”的链路深入阅读源码快速定位任意功能对应的实现文件。赞分享编译器高性能计算【免费下载链接】numbaNumPy aware dynamic Python compiler using LLVM项目地址https://gitcode.com/gh_mirrors/nu/numba点击查看免费下载相关推荐Isaac Lab 仓库结构解析从源码包到训练脚本的全景导航Isaac Lab 仓库结构解析从源码包到训练脚本的全景导航 本篇技术指南以 Isaac Lab 3.0 官方开发者文档 repo_structure.rst人工智能强化学习机器人具身智能深度学习Numba 编译器架构深度解析从 Python 字节码到机器码的七阶段流水线Numba 编译器架构深度解析从 Python 字节码到机器码的七阶段流水线 本文以 Numba 官方开发者文档 docs/source/developer编译器高性能计算GHelper 指南3 分钟替代 Armoury Crate让华硕笔记本设置变轻变快GHelper 指南3 分钟替代 Armoury Crate让华硕笔记本设置变轻变快 华硕笔记本自带的 Armoury Crate 常常有点碍眼好几个后台桌面应用系统编程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表