跳转到主要内容

NVIDIA cuQuantum Python

项目描述

cuQuantum Python

文档

请访问NVIDIA 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,请按照以下步骤操作

  1. 克隆NVIDIA/cuQuantum仓库:git clone https://github.com/NVIDIA/cuQuantum
  2. CUDA_PATH设置为您CUDA安装的路径
  3. [可选] 将CUQUANTUM_ROOT设置为您cuQuantum安装的路径
  4. [可选] 将CUTENSOR_ROOT设置为您cuTENSOR安装的路径
  5. [可选] 确保cuQuantum和cuTENSOR在您的LD_LIBRARY_PATH中可见
  6. 切换到包含Python实现的目录:cd cuQuantum/python
  7. 构建和安装
    • 如果跳过了上面的第3-5步,请运行pip install .
    • 否则(高级),运行pip install -v --no-deps --no-build-isolation .

注意

  • 对于第7步,如果您是为了测试/开发目的而从源代码构建,您可能需要在最后一个句点之前插入一个-e标志(因此pip ... .变为pip ... -e .
    • -e:使用“可编辑的”(原地)模式
    • -v:启用更详细的输出
    • --no-deps:避免安装运行时依赖项
    • --no-build-isolation:重用当前的Python环境而不是创建一个新的环境来构建包(这避免了安装任何构建时依赖项)
  • 作为设置CUQUANTUM_ROOT的替代方法,可以将CUSTATEVEC_ROOTCUTENSORNET_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

请点击此Zenodo徽章以查看引用格式:DOI

项目详情


下载文件

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

源分布

此版本没有可用的源分布文件。请参阅生成分布存档的教程

构建分布

支持