概述

简介

cuQuantum Python 旨在将 NVIDIA cuQuantum SDK 的全部功能引入 Python。为此,我们采用了两层方法

  1. 提供 cuQuantum 中相应 C API 的 1:1 Python 封装器,包括 cuStateVec、cuTensorNet 和 cuDensityMat。

  2. 提供高层、Pythonic 的 API,以便更轻松地与 Python 应用程序集成。Pythonic API 可以进一步分为两组不同的类别,分别侧重于不同的量子领域应用

    • 基于精确张量网络收缩和近似张量网络 ansatz 的量子模拟。

    • 基于量子多体算符和密度矩阵(或状态向量)形式的模拟量子动力学求解器。

在以下各节中,我们将介绍每个组件,并展示预期用法的示例。Python 示例代码(如下所示)可以在 NVIDIA/cuQuantum 存储库中找到。

兼容性策略

cuQuantum Python 与任何 Python 包没有什么不同,没有 Python 社区的依赖、协作和共同发展,我们将无法取得成功。考虑到这些因素,我们努力履行以下承诺

  1. 对于底层 Python 绑定,我们支持最新的 cuQuantum SDK。

  2. 对于高层 Pythonic API,我们尽可能保持 API 向后兼容。当必须进行重大更改时,我们会在 YY.MM 发行版本中发出运行时警告,并在发行说明中通知用户,并在下一个版本(YY.MM 之后)中进行破坏性更改。唯一的例外是实验性 API(例如,cuquantum.cutensornet.experimental 模块和 cuquantum.Network.gradients() 方法),所有 API 都可能在版本之间更改,恕不另行通知。

  3. 我们遵守 NEP-29 并支持社区定义的一组核心依赖项(CPython、NumPy 等)。

引用 cuQuantum

    1. Bayraktar 等人,“cuQuantum SDK:用于加速量子科学的高性能库”,2023 年 IEEE 国际量子计算与工程会议 (QCE),美国华盛顿州贝尔维尤,2023 年,第 1050-1061 页,doi:10.1109/QCE57702.2023.00119