NVIDIA cuQuantum Python
项目描述
cuQuantum Python
文档
有关安装cuQuantum Python的说明,请参阅我们的入门部分
从源代码构建和安装cuQuantum Python
要求
cuQuantum Python包的构建时依赖项包括
- CUDA Toolkit 11.x或12.x
- cuStateVec 1.4.0+
- cuTensorNet 2.5.0+
- Python 3.10+
- Cython >=0.29.22,<3
- pip 21.3.1+
- packaging
- setuptools 61.0.0+
- wheel 0.34.0+
除了CUDA和Python之外,其他构建时的依赖项由基于PEP-517的新构建系统处理(见下面的第7步)。
要从源代码编译和安装cuQuantum Python,请按照以下步骤操作
- 克隆NVIDIA/cuQuantum仓库:
git clone https://github.com/NVIDIA/cuQuantum
- 将
CUDA_PATH
设置为您CUDA安装的路径 - [可选] 将
CUQUANTUM_ROOT
设置为您cuQuantum安装的路径 - [可选] 将
CUTENSOR_ROOT
设置为您cuTENSOR安装的路径 - [可选] 确保cuQuantum和cuTENSOR在您的
LD_LIBRARY_PATH
中可见 - 切换到包含Python实现的目录:
cd cuQuantum/python
- 构建和安装
- 如果跳过了上面的第3-5步,请运行
pip install .
- 否则(高级),运行
pip install -v --no-deps --no-build-isolation .
- 如果跳过了上面的第3-5步,请运行
注意
- 对于第7步,如果您是为了测试/开发目的而从源代码构建,您可能需要在最后一个句点之前插入一个
-e
标志(因此pip ... .
变为pip ... -e .
)-e
:使用“可编辑的”(原地)模式-v
:启用更详细的输出--no-deps
:避免安装运行时依赖项--no-build-isolation
:重用当前的Python环境而不是创建一个新的环境来构建包(这避免了安装任何构建时依赖项)
- 作为设置
CUQUANTUM_ROOT
的替代方法,可以将CUSTATEVEC_ROOT
和CUTENSORNET_ROOT
设置为分别指向cuStateVec和cuTensorNet库。如果定义了后两个环境变量,则它们具有优先权。 - 请确保您为CUDA 11或12使用一致的二进制文件和包。混合匹配将导致不确定的行为。
运行
要求
cuQuantum Python包的运行时依赖项包括
- 具有7.0+计算能力的NVIDIA GPU
- 驱动程序:Linux(CUDA 11为450.80.02+,CUDA 12为525.60.13+)
- CUDA Toolkit 11.x或12.x
- cuStateVec 1.4.0+
- cuTensorNet 2.5.0+
- Python 3.10+
- NumPy v1.21+
- CuPy v13.0.0+(见安装指南)
- PyTorch v1.10+(可选,见安装指南)
- Qiskit v0.24.0+(可选,见安装指南)
- Cirq v0.6.0+(可选,见安装指南)
- mpi4py v3.1.0+(可选,见安装指南)
如果您从conda-forge安装所有内容,所有必需的依赖项都将为您处理(除了驱动程序)。
如果您安装pip轮,CuPy、cuTENSOR和cuQuantum(但不包括CUDA Toolkit或驱动程序,请确保CUDA库通过您的LD_LIBRARY_PATH
可见)将为您安装。
如果您从源代码构建cuQuantum Python,请确保将CUDA、cuQuantum和cuTENSOR库的路径添加到您的LD_LIBRARY_PATH
环境变量中,并且安装了兼容的CuPy。
已知问题
- 如果系统有多个cuTENSOR副本,其中一个是安装在默认系统路径中的,即使cuQuantum Python链接到其他地方安装的副本,Python运行时也可能选择它,这可能导致版本不匹配错误。正确的修复方法是删除系统路径中的cuTENSOR以确保正确副本的可见性。不要尝试使用
LD_PRELOAD
覆盖它——它可能会引起难以调试的行为! - 在特定的环境中,如果安装了PyTorch,导入
import cuquantum
可能会失败(发生段错误)。目前正在调查中,一个临时的解决方案是在导入cuquantum
之前导入torch
。 - 请确保您为CUDA 11或12使用一致的二进制文件和包。混合匹配将导致不确定的行为。
示例
演示低级和高级Python API使用的示例可以在samples
目录中找到。低级API示例是对用C语言编写的对应示例的1:1翻译。高级API示例展示了cuTensorNet库在Python中的Pythonic用法。
测试
如果已安装pytest,可以在Python源根目录的命令提示符中输入pytest tests
来运行所有测试。如果没有安装cffi
或未设置环境变量CUDA_PATH
,则某些测试将跳过。
引用cuQuantum
项目详情
关闭
哈希 对 cuquantum_python_cu11-24.8.0-cp312-cp312-manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7217ce3af9797a12f31b568d50d8c09558e0b55a09d1c09f38dbf42479a31534 |
|
MD5 | 508caf935e9fd93807b7935f0926bbf9 |
|
BLAKE2b-256 | b3276d1defe5a195c784d4a565a5d7e839fb4095e3b9fc86605bfd14987756bc |
关闭
哈希 对 cuquantum_python_cu11-24.8.0-cp312-cp312-manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e708e696edda31d6f532c6fee441ccf7204da2c70c163304d3c3e73d25cd4eb5 |
|
MD5 | 6fbf2bf9a7733e47f9f3baf4dc802188 |
|
BLAKE2b-256 | 3a67fc02093438c9c0b7a831520182ef736c693b67110f9e28f7564953f076f8 |
关闭
哈希 对 cuquantum_python_cu11-24.8.0-cp311-cp311-manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 53c2865280fde2e23d973746b3f39c71149c5084881256cdd40bd199bd19dc02 |
|
MD5 | bc7a4fff9b903a92e0a5ccadc2968d29 |
|
BLAKE2b-256 | cae490e2d7d21bf31e2283f24a55fc45fdec7edc72c6734eb695094c0dfb1de2 |
关闭
哈希 对 cuquantum_python_cu11-24.8.0-cp311-cp311-manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3168aa3c677cb1b8b9cc2b0a348f00fa5c0cbf6b423c6970ea86a2e73f2b8d6c |
|
MD5 | 61daceaace0fb1fd1f82c25e23e3875a |
|
BLAKE2b-256 | b068ab31acf6ab0befe3872e9447a128f0be51e28e7382a03503c5f2f7df27c4 |
关闭
哈希 对 cuquantum_python_cu11-24.8.0-cp310-cp310-manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4b90fd06418879788f25c00b51a4ea003ab87a018e2f601e2ad453da132bec1d |
|
MD5 | d9da7e7258945be847baf9b23839f754 |
|
BLAKE2b-256 | 135e1584190b5be258e573b953743b340316c320e9583e18d8b0ec918fdd4d43 |
关闭
哈希 对 cuquantum_python_cu11-24.8.0-cp310-cp310-manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9176c2e3f845f38cd85a45941a0e648c3212d613f907022bb6acfff3dc09b3b6 |
|
MD5 | 0a8dde2d2fbab38786dc4920f269a09b |
|
BLAKE2b-256 | d9510f9499b33707b8299c6c0d873a11aab5fb76ca0b86d8f0331f340874659e |