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 wheels,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使用一致的二进制文件和包。混合使用会导致未定义的行为。
示例
在samples
目录中提供了演示低级和高级Python API使用的示例。低级API示例是对用C语言编写的相应示例的1:1翻译。高级API示例展示了在Python中使用cuTensorNet库的Pythonic用法。
测试
如果安装了pytest,请在Python源根目录的命令提示符中输入pytest tests
,即可运行所有测试。如果未安装cffi
或未设置环境变量CUDA_PATH
,则某些测试可能会被跳过。
引用cuQuantum
项目详情
关闭
cuquantum_python_cu12-24.8.0-cp312-cp312-manylinux2014_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 86808e21d6308b052bbace36e2b4e3d2dde9a924db974feac47bfcb994ed0a71 |
|
MD5 | ec9904964a0e75e522757625243d8512 |
|
BLAKE2b-256 | 8907ef105a161870c8a2f23a8257d59829695aac3bb1f8d55166cb6955c14bc3 |
关闭
cuquantum_python_cu12-24.8.0-cp312-cp312-manylinux2014_aarch64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 88487731702617bd666a8ad6d771b6d1f5016eed4b6702a194db11f0b658c91d |
|
MD5 | 5c59dbea672f682e7a265a0b415f30a3 |
|
BLAKE2b-256 | 344c4240fab2975cd9a903a3a960a1bc4abf13ada7f7b2618ef7164673ab007f |
关闭
cuquantum_python_cu12-24.8.0-cp311-cp311-manylinux2014_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 22733bc2e540dc6ffa795284726c10225d25ed03d03dd4f7df8f326c6954e5ba |
|
MD5 | 7265a8a73cfa3e5493f23fcddc448aa5 |
|
BLAKE2b-256 | 1008fcd16162c0e4be52f65a7614e9b4a2829232d6b073709ec0193f2c3664cb |
关闭
cuquantum_python_cu12-24.8.0-cp311-cp311-manylinux2014_aarch64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f5a93fb1931ced02aca169cfbc70785d217a21e2749105e97e75bb02c16f760e |
|
MD5 | 958b11f4432dc6299250978c68de6803 |
|
BLAKE2b-256 | 1078f771c57a9782eefe0c61cea3915a7ca178b765d9a7386453749f87d09106 |
关闭
cuquantum_python_cu12-24.8.0-cp310-cp310-manylinux2014_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f5b93cf59dcf6a5baabee28e1b1a854a0b6ef6d9707523b16f451a4108c32517 |
|
MD5 | e57da5b824b4ec2de16a634bcbd1468d |
|
BLAKE2b-256 | 650f7f1e6b8a21bed8d6f5cfabad7f9e4d32b15929c5681f70563111de030d85 |
关闭
cuquantum_python_cu12-24.8.0-cp310-cp310-manylinux2014_aarch64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7152b003fea0481f64a2637f72711072675852ed945dbcdd12a442c18c9a81af |
|
MD5 | 4d0f0199053580bc9160d0754a96be56 |
|
BLAKE2b-256 | e01d69ea2ba75f6a2b65319cfa582007d4440742a46e6b417ccdd2d3dd6aa7bc |