发行说明

cuQuantum Python v24.11.0

cuQuantum Python v24.08.0

已知问题:

  • 在 PyPI 中,我们的软件包在版本中发布时带有一个额外的发布后标签

    A.B.C.D
    ~~~~~~↑
    

    要让 pip 选择正确的发布后标签(和相应的版本),请使用此命令

    pip install cuquantum-python~=A.B.C
    pip install cuquantum~=A.B.C
    

    例如,以下任何命令都将正确解析额外的版本组件

    pip install cuquantum-python==24.8.0.2
    pip install cuquantum-python~=24.8.0
    pip install cuquantum==24.8.0.2
    pip install cuquantum~=24.8.0
    

兼容性说明:

  • cuQuantum Python 现在需要 Python 3.10+。

  • cuQuantum Python 现在支持 NumPy 2.0。

cuQuantum Python v24.03.0

已知问题:

  • 在 PyPI 中,我们的软件包在版本中发布时带有一个额外的发布后标签

    A.B.C.D
    ~~~~~~↑
    

    要让 pip 选择正确的发布后标签(和相应的版本),请使用此命令

    pip install cuquantum-python~=A.B.C
    pip install cuquantum~=A.B.C
    

    对于 cuQuantum SDK 24.3.0,所有(元)软件包都配置了一个发布后标签:24.3.0.post1。 为了说明,以下任何命令都将正确解析附加的版本组件

    pip install cuquantum-python==24.3.0.post1
    pip install cuquantum-python~=24.3.0
    pip install cuquantum==24.3.0post1
    pip install cuquantum~=24.3.0
    

兼容性说明:

  • cuquantum.CircuitToEinsum 现在支持 qiskit <= v1.0.0。

  • cuQuantum Python 现在需要 CuPy v13+

  • cuQuantum Python 现在支持 Python 3.12。

    • 在下一个版本中,将删除对 Python 3.9 的支持,以遵循 NEP-29。(这指的是 PyPI.org 上的预构建 wheels 和 conda-forge 上的 Conda 包。 如果您对预构建支持有任何需求,请在 GitHub 上联系我们。 或者,您可以从源代码构建,尽管我们可能不保证无限期地支持源代码兼容性。)

  • 在接下来的 cuQuantum 版本中,cuQuantum 将停止支持 RHEL 7。 请提前计划并牢记这一点。 谢谢。

cuQuantum Python v23.10.0

cuQuantum Python v23.06.0

兼容性说明:

  • cuQuantum Python 现在需要 Python 3.9+

  • cuQuantum Python 现在需要 NumPy v1.21+

  • cuQuantum Python 现在需要 CuPy v10+

已知问题:

cuQuantum Python v23.03.0

兼容性说明:

  • cuQuantum Python 需要 Python 3.8+

    • 在下一个版本中,将删除对 Python 3.8 的支持,以遵循 NEP-29。(这指的是 PyPI.org 上的预构建 wheels 和 conda-forge 上的 Conda 包。 如果您对预构建支持有任何需求,请在 GitHub 上联系我们。 或者,您可以从源代码构建,尽管我们可能不保证无限期地支持源代码兼容性。)

  • cuQuantum Python 需要 NumPy v1.19+

    • 在下一个版本中,将删除对 NumPy 1.19 和 1.20 的支持,以遵循 NEP-29

  • cuQuantum Python 需要 CuPy v9.5+

    • 在下一个版本中,将删除对 CuPy v9 的支持,以与 NEP-29 保持一致。

cuQuantum Python v22.11.0.1

这是一个热修复版本,解决了 cuQuantum Python 中的一些问题。

  • 错误修复

    • 修复了 cuquantum.contract() 中可能影响某些使用模式的性能下降问题。

    • 修复了 Jupyter notebook qiskit_basic.ipynb 中的 .save_statevector() 用法。

    • 删除无效代码。

cuQuantum Python v22.11.0

  • 我们在 NVIDIA/cuQuantum GitHub 讨论区! 对于有关 cuQuantum 的任何问题(或分享任何基于 cuQuantum 构建的令人兴奋的工作),请随时在 GitHub 讨论区与我们联系。

  • 添加新的 API 和功能

  • API 变更

    • 对于 cuTensorNet 底层 API,请参考 cuTensorNet v2.0.0 的发行说明; cuStateVec 底层 API 保持不变。

      • 用户可以使用专用的 NumPy dtype cuquantum.cutensornet.tensor_qualifiers_dtype 设置张量限定符。 有关详细信息,请参阅 Python 示例 (python/samples/cutensornet/coarse/example21.py)。 例如,可以即时完成复共轭,从而减少内存压力。

      • 要获取/设置收缩路径或切片配置,用户应使用 contraction_optimizer_info_get_attribute_dtype() 来获取表示路径或切片配置对象的 NumPy 自定义 dtype,其方式与用于所有其他属性的方法一致。 有关详细信息,请参阅文档字符串。 删除了(实验性)ContractionPath 对象。

  • 功能/性能改进

    • 改进了使用 cuquantum.contract() 或相关 API 收缩两个张量时的性能。

    • 改进了通过 reset_operands() 重用 Network 对象时的性能。

    • 改进了 CircuitToEinsum 中的光锥构造,以进一步减少网络中张量的数量。

    • 构建系统现在支持 PEP-517 和标准 pip 命令行标志。 不再使用环境变量 CUQUANTUM_IGNORE_SOLVER。 有关更多信息,请参阅 构建要求

  • 错误修复

    • 修复了内部设备上下文切换中潜在的多设备错误。

    • 修复了当输入电路尺寸变大时在 cuquantum.CircuitToEinsum 中使用无效模式标签的错误。

  • 其他更改

    • 提供了一个更多的分布式 (MPI+NCCL) Python 示例 (example4_mpi_nccl.py),以展示如何使用 cuTensorNet 并创建并行性。

    • 测试基础设施将把不可运行的测试显示为“未选择”,而不是“跳过”。

    • PyPI 上发布了一个新的 pip wheel:pip install cuquantum-python-cu11。用户仍然可以像以前一样通过 pip install cuquantum-python 安装 cuQuantum Python。cuquantum-python 现在变成了一个指向 cuquantum-python-cu11 的 meta-wheel。当新的 CUDA 版本可用时,这可能会在未来的版本中发生变化。建议使用带有 -cuXX 后缀的 wheel。

兼容性说明:

  • cuQuantum Python 现在需要 cuStateVec 1.1.0 或更高版本。

  • cuQuantum Python 现在需要 cuTensorNet 2.0.0 或更高版本。

  • cuQuantum Python 现在需要 cuTENSOR 1.6.1 或更高版本。

cuQuantum Python v22.07.1

  • 错误修复

    • 22.07.0 版本的 cuquantum wheel 文件布局错误。(如果您使用的是 cuquantum 22.07.0.1 或 22.07.0.2 hot-fix wheel,它们可以正常工作。)

cuQuantum Python v22.07.0

  • 添加新的 API 和功能

    • 对于底层 API,请参阅 cuStateVec v1.1.0cuTensorNet v1.1.0 的发布说明。

    • 新的高级 API cuquantum.CircuitToEinsum 支持将 qiskit.QuantumCircuitcirq.Circuit 转换为张量网络收缩

      • 支持状态系数

      • 支持位串幅度

      • 支持约化密度矩阵

      • 后端支持 NumPy、CuPy 和 PyTorch

    • cuquantum.Network.contract() 方法中添加了一个仅关键字参数 slices,以支持收缩切片的任意子集。

    • cuquantum.OptimizerInfo 对象中添加了一个新的属性 intermediate_modes,用于检索所有中间张量的模式标签。

    • cuquantum.OptimizerInfo 对象中添加了一个新的属性 num_slices,用于查询切片总数。

  • 功能/性能改进

    • 改进了 einsum 表达式解析器。

  • 错误修复

  • 其他更改

    • 移除了对 typing_extensions 的依赖。

    • 提供了分布式(基于 MPI)Python 示例,展示了使用 cuTensorNet 和创建并行性有多么容易。mpi4py 是运行这些示例所必需的。

    • 更新了底层的、非分布式示例 tensornet_example.py,改进了内存使用,并切换到新的收缩 API contract_slices()

    • 提供了 Jupyter Notebook,展示了如何将量子电路转换为张量网络收缩。

    • 添加了一个 Python 示例,说明了新的多设备位交换 multi_device_swap_index_bits() API 的用法。

    • 重组了 samples 文件夹,以分隔 cuStateVec 和 cuTensorNet 示例。

兼容性说明:

  • cuQuantum Python 现在需要 cuQuantum v22.07。

  • cuQuantum Python 现在需要 Python 3.8+。

  • cuQuantum Python 现在需要 NumPy v1.19+。

  • cuQuantum Python 支持 Cirq v0.6.0+。

  • cuQuantum Python 支持 Qiskit v0.24.0+。

cuQuantum Python v22.05.0

cuQuantum Python v22.03.0

  • 稳定版本发布

    • 从本版本开始,cuQuantum Python 切换到 CalVer 版本控制方案,与 cuQuantum SDK 保持一致

    • pip wheels 在 PyPI 上发布:pip install cuquantum-python

  • 功能/性能改进

    • 高级张量网络 API 现在完全兼容 NumPy

      • 支持广义 einsum 表达式

      • 支持省略号

      • 支持广播

  • 为以下内容添加了新的 API 和功能

  • API 变更

兼容性说明:

  • cuQuantum Python 需要 cuQuantum v22.03

  • cuQuantum Python 需要 Python 3.7+

    • 在下一个版本中,Python 3.7 将被删除,以遵循 NEP-29

  • cuQuantum Python 需要 NumPy v1.17+

    • 在下一个版本中,NumPy 1.17 和 1.18 将被删除,以遵循 NEP-29

  • cuQuantum Python 需要 CuPy v9.5+

  • cuQuantum Python 支持 PyTorch v1.10+

已知问题:

  • 如果您从 PyPI 安装 cuQuantum Python (pip install cuquantum-python),请确保您也安装了 typing_extensions(通过 pipconda)。这仅影响 wheel 安装,并将在下一个版本中修复。(NVIDIA/cuQuantum#3

cuQuantum Python v0.1.0.1

  • 补丁版本发布

    • 添加了 __version__ 字符串

cuQuantum Python v0.1.0.0

  • 初始版本发布 (beta 2)

兼容性说明:

  • cuQuantum Python 需要 cuQuantum v0.1.0

  • cuQuantum Python 需要 NumPy v1.17+

  • cuQuantum Python 需要 CuPy v9.5+

  • cuQuantum Python 支持 PyTorch v1.10+

限制说明:

  • 在某些环境中,如果安装了 PyTorch,import cuquantum 可能会失败(并出现段错误)。目前正在调查中,临时的解决方法是在导入 cuquantum 之前先导入 torch