轻量级LLVM功能包装器
项目描述
一个用于编写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 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ae2b5b5c3ef67354824fb75517c8db5fbe93bc02cd9671f3c62271626bc041d5 |
|
MD5 | 7f07704884bb956280b6c5e975f57b8b |
|
BLAKE2b-256 | 9f3df513755f285db51ab363a53e898b85562e950f79a2e6767a364530c2f645 |
llvmlite-0.43.0-cp312-cp312-win_amd64.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7a2872ee80dcf6b5dbdc838763d26554c2a18aa833d31a2635bff16aafefb9c9 |
|
MD5 | b8c8b6552cdcb6acb9ce2a8b38b0081c |
|
BLAKE2b-256 | c694dea10e263655ce78d777e78d904903faae39d1fc440762be4a9dc46bed49 |
llvmlite-0.43.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | df6509e1507ca0760787a199d19439cc887bfd82226f5af746d6977bd9f66844 |
|
MD5 | f21e07569b21555779afe5686dd92d0e |
|
BLAKE2b-256 | 005f323c4d56e8401c50185fd0e875fcf06b71bf825a863699be1eb10aa2a9cb |
llvmlite-0.43.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | eccce86bba940bae0d8d48ed925f21dbb813519169246e2ab292b5092aba121f |
|
MD5 | 4f0aca7af89d67522174e18f8717d816 |
|
BLAKE2b-256 | bff14c205a48488e574ee9f6505d50e84370a978c90f08dab41a42d8f2c576b6 |
llvmlite-0.43.0-cp312-cp312-macosx_11_0_arm64.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 35d80d61d0cda2d767f72de99450766250560399edc309da16937b93d3b676e7 |
|
MD5 | 511ca85c9dffce940f153fc6deaae6af |
|
BLAKE2b-256 | a29c24139d3712d2d352e300c39c0e00d167472c08b3bd350c3c33d72c88ff8d |
llvmlite-0.43.0-cp312-cp312-macosx_10_9_x86_64.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f99b600aa7f65235a5a05d0b9a9f31150c390f31261f2a0ba678e26823ec38f7 |
|
MD5 | 99376aed834396e017ae2cbda6aed392 |
|
BLAKE2b-256 | 0b679443509e5d2b6d8587bae3ede5598fa8bd586b1c7701696663ea8af15b5b |
llvmlite-0.43.0-cp311-cp311-win_amd64.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d5bd550001d26450bd90777736c69d68c487d17bf371438f975229b2b8241a91 |
|
MD5 | 41a855c2e22f38e96d5c75f096fbdc88 |
|
BLAKE2b-256 | 20abed5ed3688c6ba4f0b8d789da19fd8e30a9cf7fc5852effe311bc5aefe73e |
llvmlite-0.43.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 977525a1e5f4059316b183fb4fd34fa858c9eade31f165427a3977c95e3ee749 |
|
MD5 | 1c1dbcb8c6e8828c8e45907afe9878da |
|
BLAKE2b-256 | 6b995d00a7d671b1ba1751fc9f19d3b36f3300774c6eebe2bcdb5f6191763eb4 |
llvmlite-0.43.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c1da416ab53e4f7f3bc8d4eeba36d801cc1894b9fbfbf2022b29b6bad34a7df2 |
|
MD5 | 6aef15b67a12004ce8313b65a6eaf195 |
|
BLAKE2b-256 | 2fb24429433eb2dc8379e2cb582502dca074c23837f8fd009907f78a24de4c25 |
llvmlite-0.43.0-cp311-cp311-macosx_11_0_arm64.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e0a9a1a39d4bf3517f2af9d23d479b4175ead205c592ceeb8b89af48a327ea57 |
|
MD5 | f9652e298462bffc94451426a8d871c1 |
|
BLAKE2b-256 | eee138deed89ced4cf378c61e232265cfe933ccde56ae83c901aa68b477d14b1 |
哈希值 for llvmlite-0.43.0-cp311-cp311-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3e8d0618cb9bfe40ac38a9633f2493d4d4e9fcc2f438d39a4e854f39cc0f5f98 |
|
MD5 | 95db6a50f519fd4a5fe0b8a520ae7d2d |
|
BLAKE2b-256 | 958cde3276d773ab6ce3ad676df5fab5aac19696b2956319d65d7dd88fb10f19 |
哈希值 for llvmlite-0.43.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6912a87782acdff6eb8bf01675ed01d60ca1f2551f8176a300a886f09e836a6a |
|
MD5 | 1e636a564489d452bfb092eb11806792 |
|
BLAKE2b-256 | c6212ffbab5714e72f2483207b4a1de79b2eecd9debbf666ff4e7067bcc5c134 |
哈希值 for llvmlite-0.43.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7d434ec7e2ce3cc8f452d1cd9a28591745de022f931d67be688a737320dfcead |
|
MD5 | c6bb4dffc1c7e81d9054f698655d4453 |
|
BLAKE2b-256 | 7e3c4410f670ad0a911227ea2ecfcba9f672a77cf1924df5280c4562032ec32d |
哈希值 for llvmlite-0.43.0-cp310-cp310-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6d4fd101f571a31acb1559ae1af30f30b1dc4b3186669f92ad780e17c81e91bc |
|
MD5 | 06f6719591e9e972686540880bfea0e1 |
|
BLAKE2b-256 | ca5ca27f9257f86f0cda3f764ff21d9f4217b9f6a0d45e7a39ecfa7905f524ce |
哈希值 for llvmlite-0.43.0-cp310-cp310-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a289af9a1687c6cf463478f0fa8e8aa3b6fb813317b0d70bf1ed0759eab6f761 |
|
MD5 | cc21e545ca4b17259020d720de818f5e |
|
BLAKE2b-256 | 23ff6ca7e98998b573b4bd6566f15c35e5c8bea829663a6df0c7aa55ab559da9 |
哈希值 for llvmlite-0.43.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | bc9efc739cc6ed760f795806f67889923f7274276f0eb45092a1473e40d9b867 |
|
MD5 | e1066f7231b98ace6889a6fd2237feec |
|
BLAKE2b-256 | e0d0889e9705107db7b1ec0767b03f15d7b95b4c4f9fdf91928ab1c7e9ffacf6 |
哈希值 for llvmlite-0.43.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 74937acd22dc11b33946b67dca7680e6d103d6e90eeaaaf932603bec6fe7b03a |
|
MD5 | e8b96f1d62b1ed7c85b7eeb14441ab74 |
|
BLAKE2b-256 | c8c69324eb5de2ba9d99cbed853d85ba7a318652a48e077797bec27cf40f911d |
哈希值 for llvmlite-0.43.0-cp39-cp39-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 18e9953c748b105668487b7c81a3e97b046d8abf95c4ddc0cd3c94f4e4651ae8 |
|
MD5 | 7df72cb439b4934da5e2fa5290d07c85 |
|
BLAKE2b-256 | cc6158c70aa0808a8cba825a7d98cc65bef4801b99328fba80837bfcb5fc767f |
哈希值 for llvmlite-0.43.0-cp39-cp39-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9cd2a7376f7b3367019b664c21f0c61766219faa3b03731113ead75107f3b66c |
|
MD5 | 5e444d25394ce018d52607f0d65e65f7 |
|
BLAKE2b-256 | 2a7312925b1bbb3c2beb6d96f892ef5b4d742c34f00ddb9f4a125e9e87b22f52 |