跳转到主要内容

轻量级LLVM功能包装器

项目描述

Azure Pipelines Code Climate Coveralls.io Readthedocs.io

一个用于编写JIT编译器的轻量级LLVM Python绑定

llvmlite是一个最初为Numba的需求而量身定制的项目,采用以下方法

  • 一个小型的C包装器,围绕我们需要的LLVM C++ API的部分,这些部分尚未通过LLVM C API公开。

  • 一个ctypes Python包装器,围绕C API。

  • 一个纯Python实现,实现了LLVM IR构建器的一个子集,这是我们为Numba需要的。

为什么是llvmlite

旧的llvmpy绑定暴露了大量的LLVM API,但将C++风格的内存管理映射到Python上存在错误风险。Numba和许多JIT编译器不需要完整的LLVM API。只需要IR构建器、优化器和JIT编译器API。

主要优点

  • IR构建器是纯Python代码,与LLVM频繁变化的C++ API解耦。

  • 实例化LLVM模块会调用LLVM的IR解析器,它提供的错误信息比通过C++ API逐步构建IR(不再有段错误或进程终止)更好。

  • llvmlite的大部分内容使用LLVM C API,它体积小但非常稳定(在更改LLVM版本时维护性低)。

  • 绑定不是Python C扩展,而是一个通过ctypes访问的纯DLL(无需与Python的编译器要求或C++ 11兼容性纠缠)。

  • Python绑定层的内存管理是合理的。

  • 由于具有更简单的架构,llvmlite比llvmpy更快(Numba测试套件的性能比它快一倍)。

兼容性

llvmlite已在Python 3.9 – 3.12上进行了测试,并可能适用于更高版本。

截至版本0.41.0,llvmlite在所有架构上都需要LLVM 14.x.x

历史兼容性表

llvmlite版本

兼容LLVM版本

0.41.0 - …

14.x.x

0.40.0 - 0.40.1

11.x.x和14.x.x(12.x.x和13.x.x未经测试但可能工作)

0.37.0 - 0.39.1

11.x.x

0.34.0 - 0.36.0

10.0.x(仅限aarch64的9.0.x)

0.33.0

9.0.x

0.29.0 - 0.32.0

7.0.x, 7.1.x, 8.0.x

0.27.0 - 0.28.0

7.0.x

0.23.0 - 0.26.0

6.0.x

0.21.0 - 0.22.0

5.0.x

0.17.0 - 0.20.0

4.0.x

0.16.0 - 0.17.0

3.9.x

0.13.0 - 0.15.0

3.8.x

0.9.0 - 0.12.1

3.7.x

0.6.0 - 0.8.0

3.6.x

0.1.0 - 0.5.1

3.5.x

文档

您可以在http://llvmlite.pydata.org找到文档

预构建的二进制文件

我们建议您使用Numba团队提供的用于Conda包管理器的二进制文件。您可以在Numba的anaconda.org通道中找到它们。例如

$ conda install --channel=numba llvmlite

(或者,简单地,Anaconda发行版中提供的官方llvmlite包)

其他构建方法

如果您不想使用我们提供的预构建包,您可以自己编译和安装llvmlite。文档会教您如何操作:http://llvmlite.pydata.org/en/latest/install/index.html

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

llvmlite-0.43.0.tar.gz (157.1 kB 查看哈希值)

上传时间 源代码

构建分发版

llvmlite-0.43.0-cp312-cp312-win_amd64.whl (28.1 MB 查看哈希值)

上传时间 CPython 3.12 Windows x86-64

llvmlite-0.43.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (43.9 MB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ x86-64

llvmlite-0.43.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (42.9 MB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ ARM64

llvmlite-0.43.0-cp312-cp312-macosx_11_0_arm64.whl (28.8 MB 查看哈希值)

上传时间 CPython 3.12 macOS 11.0+ ARM64

llvmlite-0.43.0-cp312-cp312-macosx_10_9_x86_64.whl (31.1 MB 查看哈希值)

上传时间 CPython 3.12 macOS 10.9+ x86-64

llvmlite-0.43.0-cp311-cp311-win_amd64.whl (28.1 MB 查看哈希值)

上传时间 CPython 3.11 Windows x86-64

llvmlite-0.43.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (43.9 MB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ x86-64

llvmlite-0.43.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (42.9 MB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ ARM64

llvmlite-0.43.0-cp311-cp311-macosx_11_0_arm64.whl (28.8 MB 查看哈希值)

上传时间 CPython 3.11 macOS 11.0+ ARM64

llvmlite-0.43.0-cp311-cp311-macosx_10_9_x86_64.whl (31.1 MB 查看哈希值)

上传时间 CPython 3.11 macOS 10.9+ x86-64

llvmlite-0.43.0-cp310-cp310-win_amd64.whl (28.1 MB 查看哈希值)

上传时间 CPython 3.10 Windows x86-64

llvmlite-0.43.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (43.9 MB 查看哈希值)

上传时间 CPython 3.10 manylinux: glibc 2.17+ x86-64

llvmlite-0.43.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (42.9 MB 查看哈希值)

上传时间 CPython 3.10 manylinux: glibc 2.17+ ARM64

llvmlite-0.43.0-cp310-cp310-macosx_11_0_arm64.whl (28.8 MB 查看哈希值)

上传时间 CPython 3.10 macOS 11.0+ ARM64

llvmlite-0.43.0-cp310-cp310-macosx_10_9_x86_64.whl (31.1 MB 查看哈希值)

上传时间 CPython 3.10 macOS 10.9+ x86-64

llvmlite-0.43.0-cp39-cp39-win_amd64.whl (28.1 MB 查看哈希值)

上传时间 CPython 3.9 Windows x86-64

llvmlite-0.43.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (43.9 MB 查看哈希值)

上传时间 CPython 3.9 manylinux: glibc 2.17+ x86-64

llvmlite-0.43.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (42.9 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ ARM64

llvmlite-0.43.0-cp39-cp39-macosx_11_0_arm64.whl (28.8 MB 查看哈希)

上传于 CPython 3.9 macOS 11.0+ ARM64

llvmlite-0.43.0-cp39-cp39-macosx_10_9_x86_64.whl (31.1 MB 查看哈希)

上传于 CPython 3.9 macOS 10.9+ x86-64

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面