numba
文章平均质量分 95
绝不原创的飞龙
这个作者很懒,什么都没留下…
展开
-
Numba 0.44 中文文档(一)
原文:Numba documentation协议:CC BY-NC-SA 4.01. 用户手册1.1. Numba 的 ~ 5 分钟指南原文: numba.pydata.org/numba-doc/latest/user/5minguide.htmlNumba 是 Python 的即时(JIT)编译器,它最适用于使用 NumPy 数组、函数和循环的代码。使用 Numba 的最常用方法是使用其装饰器集合,通过作用于您的函数来指示 Numba 编译它们。当调用 Numba 修饰函数时,它被编译原创 2024-06-29 11:34:55 · 1228 阅读 · 0 评论 -
Numba 0.44 中文文档(五)
作为一般规则, nopython 模式不适用于 Python 对象,因为它们是由 CPython 解释器生成的。解释器使用的表示对于快速本机代码而言效率太低。因此, nopython 模式中支持的每种类型都必须定义定制的本机表示,也称为数据模型。数据模型的一个常见情况是不可变的类似结构的数据模型,类似于 Cstruct。这指示 Numba 将类型的值(或其任何实例)表示为两个字段lo和hi的结构,每个字段都是双精度浮点数(注意可变类型需要更复杂的数据模型才能在修改后保留其值。原创 2024-06-29 11:34:24 · 671 阅读 · 0 评论 -
Numba 0.44 中文文档(四)
原文: numba.pydata.org/numba-doc/latest/roc/overview.htmlNumba 支持编程,直接将 HSA 代码的受限子集编译为 HSA 内核和遵循 HSA 执行模型的设备功能。用 Numba 编写的内核似乎可以直接访问 NumPy 数组。HSA 提供类似于 OpenCL 的执行模型。指令由一组硬件线程并行执行。在某种程度上,这类似于单指令多数据(SIMD)模型,但方便的是,细粒度调度对程序员是隐藏的,而不是用 SIMD 向量作为数据结构进行编程。原创 2024-06-29 11:33:52 · 1446 阅读 · 0 评论 -
Numba 0.44 中文文档(三)
原文: numba.pydata.org/numba-doc/latest/cuda/overview.htmlNumba 通过直接将 CudA 内核和 CUDA 执行模型之后的 CUDA 内核和设备函数的受限子集编译为 CUDA GPU 编程。用 Numba 编写的内核似乎可以直接访问 NumPy 数组。NumPy 阵列自动在 CPU 和 GPU 之间传输。与用于编程 CPU 的传统顺序模型不同,CUDA 具有执行模型。在 CUDA 中,您编写的代码将由多个线程同时执行(通常为数百或数千)。原创 2024-06-29 11:33:14 · 784 阅读 · 0 评论 -
Numba 0.44 中文文档(六)
本节介绍中间表示(IR)重写,以及如何使用它们来实现优化。正如前面在“阶段 6a:重写类型 IR ”中所讨论的那样,重写 Numba IR 允许我们执行在较低 LLVM 级别执行将更加困难的优化。与 Numba 类型和降低子系统类似,重写子系统是用户可扩展的。这种可扩展性为 Numba 提供了支持各种特定领域优化(DSO)的可能性。其余小节详细介绍了实现重写的机制,使用重写注册表注册重写,并提供添加新重写的示例,以及数组表达式优化传递的内部结构。原创 2024-06-29 11:32:43 · 860 阅读 · 0 评论 -
Numba 0.44 中文文档(二)
当 Numba 尝试编译代码时,它首先尝试计算出所有正在使用的变量的类型,这样就可以生成代码的特定类型实现,可以编译成机器代码。对于列表,列表必须包含相同类型的项目,或者如果可以从稍后的某个操作推断出类型,则列表可以为空。如果在某些更高级别的代码中有一段性能关键的计算代码,则可以在单独的函数中分解性能关键代码,并使用 Numba 编译单独的函数。确切地说允许哪种签名取决于上下文( AOT 或 JIT 编译),但签名总是涉及 Numba 类型的一些表示,以指定函数参数的具体类型,如果需要,函数的返回类型。原创 2024-06-29 11:32:13 · 631 阅读 · 0 评论