发行说明¶
cuQuantum Python v24.11.0¶
添加新的 API 和功能
一个新的模块
cuquantum.bindings
用于托管 cuDensityMat 库的低级 API,位于cuquantum.bindings.cudensitymat
下。对于低级 API,请参考 cuStateVec v1.7.0、cuTensorNet v2.6.0 和 cuDensityMat v0.0.5 的发行说明
一个新的实验性模块
cuquantum.densitymat
用于加速基于量子多体算符和密度矩阵(或状态向量)形式主义的模拟量子动力学求解器。有关此新模块的详细介绍,请参考 高级密度矩阵 API。注意:所有新的实验性 API 在未来版本中可能会发生更改。请在 NVIDIA/cuQuantum GitHub Discussions 上与我们分享您的反馈!在
cuquantum.cutensornet.experimental.NetworkState.compute_output_state()
中添加了一个新参数release_operators
,以允许用户选择是否在 MPS 模拟期间释放所有底层算符的引用。添加了一个新方法
cuquantum.cutensornet.experimental.NetworkState.apply_unitary_tensor_channel()
,以允许用户执行张量网络状态的噪声模拟。有关详细信息,请参阅 Python 示例 (example05_noisy_unitary_channels.py)。添加了一个新类
cuquantum.MemoryLimitExceeded
,当操作需要的设备内存超过操作选项中指定的内存时,将引发异常。这适用于缩并、分解和缩并-分解操作。
错误修复
修复了
cuquantum.CircuitToEinsum
中的一个错误,以支持 qiskitqiskit.QuantumCircuit。
其他更改
compute_norm
方法已从实验性 APIcuquantum.cutensornet.experimental.NetworkState
中移除。现在可以通过为以下 API 提供参数return_norm=True
来检索状态的平方范数:
计划变更(即将在下一版本中推出):
cuStateVec 和 cuTensorNet 的所有低级 API 将迁移到
cuquantum.bindings
下相应的子模块cuquantum.bindings.custatevec
和cuquantum.bindings.cutensornet
,而 API 名称和签名将保持不变。将发布一个新模块
cuquantum.tensornet
,用于托管张量网络计算的所有高级 API,包括以下内容:
注意:上面概述的计划变更可能会发生变化,并且可能与发布时的最终实现有所不同。详细的迁移指南将在即将发布的版本中提供。我们欢迎您在 NVIDIA/cuQuantum GitHub Discussions 上就这些计划变更提供反馈。现有的 API 将被弃用,但在被移除之前仍将支持几个版本,以确保平稳过渡。
cuQuantum Python v24.08.0¶
添加新的 API 和功能
对于低级 API,请参考 cuTensorNet v2.5.0 的发行说明。
引入
cuquantum.cutensornet.experimental
下的实验性 API,其中包括:cuquantum.cutensornet.experimental.NetworkState
,它可以使用户直接使用 cuTensorNet 状态 API,通过各种方法模拟纯张量网络状态。用户可以从完全参数化的线路(例如qiskit.QuantumCircuit
或cirq.Circuit
)启动模拟,或者通过将张量算符应用于cuquantum.cutensornet.experimental.NetworkState
对象来逐步构建张量网络状态。cuquantum.cutensornet.experimental.TNConfig
,当通过config
参数提供时,它支持基于缩并的cuquantum.cutensornet.experimental.NetworkState
张量网络模拟。cuquantum.cutensornet.experimental.MPSConfig
,当通过config
参数提供时,它支持基于矩阵乘积态 (MPS) 的cuquantum.cutensornet.experimental.NetworkState
模拟。cuquantum.cutensornet.experimental.NetworkOperator
,它允许通过添加张量网络算符乘积或矩阵乘积算符 (MPO) 来构建自定义网络算符。然后,网络算符对象可以与网络状态对象交互,以应用 MPO 或计算网络算符的期望值。
有关这些新 API 的详细介绍,请参考 张量网络模拟器 或 NetworkState 示例目录
注意:所有新的实验性 API 在未来版本中可能会发生更改。请在 NVIDIA/cuQuantum GitHub Discussions 上与我们分享您的反馈!
错误修复
修复了
cuquantum.NetworkOptions.compute_type
中的一个错误,以支持cuquantum.cutensornet.ComputeType.COMPUTE_3XTF32
。
已知问题:
在 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¶
添加新的 API 和功能
对于低级 API,请参考 cuStateVec v1.6.0 和 cuTensorNet v2.4.0 的发行说明。
从此版本开始,我们通过新的、可
cimport
-able 的cycustatevec
和cycutensornet
模块,为 Cython 用户提供实验性的 C 符号导出支持。为了更好的一致性,几个 API 和对象被重命名
旧
新
collapse_by_bitstring()
collapse_by_bitstring_batched_get_workspace_size()
collapse_by_bitstring_batched()
Collapse
contraction_optimizer_config_get_attribute_dtype()
contraction_optimizer_info_get_attribute_dtype()
contraction_autotune_preference_get_attribute_dtype()
tensor_svd_config_get_attribute_dtype()
tensor_svd_info_get_attribute_dtype()
network_get_attribute_dtype()
marginal_get_attribute_dtype()
sampler_get_attribute_dtype()
state_get_attribute_dtype()
accessor_get_attribute_dtype()
expectation_get_attribute_dtype()
旧的 API 仍然存在且功能正常,但它们被认为是已弃用的,并将在未来版本中移除。
添加了资源管理选项(参见 状态对象中的资源管理)。
Network
的执行方法,包括autotune()
、contract()
和gradients()
,现在接受一个可选的release_workspace
参数,以请求在函数返回时释放用于执行的工作区。现在,
reset_operands()
方法接受为operands
参数传递None
,以请求释放对网络操作数的内部引用。
错误修复
修复了
cuquantum.CircuitToEinsum
在解析带有复杂标准门的qiskit.QuantumCircuit
时出现的某些失败情况。
已知问题:
在 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¶
添加新的 API 和功能
对于底层 API,请参考 cuStateVec v1.5.0 和 cuTensorNet v2.3.0 的发行说明。
如果输入操作数是 PyTorch 张量,函数
cuquantum.contract()
现在像原生的 PyTorch 运算符一样工作,就 autograd 而言。 这是一个实验性功能。添加了一个新的实验性方法
cuquantum.Network.gradients()
,用于计算网络关于输入操作数的梯度。如果梯度是复数值的,则约定遵循 PyTorch 的约定。
添加了一个新的属性
cuquantum.cutensornet.tensor.SVDMethod.discarded_weight_cutoff
,以允许基于丢弃权重的 SVD 截断。cuquantum.Network
构造函数及其reset_operands()
方法现在接受可选的stream
参数。
错误修复
修复了当在提供的操作数在收缩操作后未存活时调用
reset_operands()
时可能发生的数据损坏。对于使用 CPU 数组(来自 NumPy/PyTorch)作为收缩输入操作数的情况,内部流未被正确排序。
方法
autotune()
、contract()
和独立函数contract()
允许传递stream
参数的指针地址,正如文档中所承诺的那样。修复了
cuquantum.cutensornet.MarginalAttribute.OPT_NUM_HYPER_SAMPLES
和cuquantum.cutensornet.SamplerAttribute.OPT_NUM_HYPER_SAMPLES
属性的 dtypes。
其他更改
如果启用了 Python 日志记录,则会报告 cuTensorNet 的运行时(而不是构建时)版本。
对于将 PyTorch 张量传递给收缩 API,现在会考虑张量标志
.is_conj()
和.requires_grad
,除非用户使用qualifiers
参数显式覆盖它们。
cuQuantum Python v23.06.0¶
添加新的 API 和功能
对于底层 API,请参考 cuStateVec v1.4.0 和 cuTensorNet v2.2.0 的发行说明。
实验性 API
cuquantum.cutensornet.compute_gradients_backward()
返回的复数值梯度与 PyTorch 的约定相差一个复共轭。
新的属性
cuquantum.cutensornet.tensor.SVDMethod.algorithm
允许用户在各种 SVD 算法之间进行选择,包括"gesvd"
、"gesvdj"
、"gesvdr"
和"gesvdp"
。 对于"gesvdj"
和"gesvdr"
,用户还可以提供自定义设置(例如,"gesvdj"
算法的容差)。新的属性
cuquantum.cutensornet.tensor.SVDInfo.algorithm
描述 SVD 计算中使用的 SVD 算法。 对于"gesvdj"
和"gesvdp"
,用户还可以访问执行信息(例如,"gesvdj"
算法的残差)。
错误修复
修复了
cuquantum.cutensornet.tensor.decompose()
和cuquantum.cutensornet.experimental.contract_decompose()
的自动分块选项的错误。修复了
cuquantum.CircuitToEinsum
在解析qiskit.QuantumCircuit
时考虑潜在全局相位的错误。修复了
cuquantum.CircuitToEinsum
在给定qiskit.QuantumCircuit
时解析自定义门的错误。
其他更改
改进了 MPS 演示的 Jupyter notebook,加入了基于密度矩阵的 MPS-MPO 收缩算法。
避免在
cuquantum.CircuitToEinsum
中使用任何空格 unicode 字符作为 TN 符号。cuquantum.PathFinderOptions
路径查找算法现在利用新的智能选项来限制路径查找器经过的时间(详见CUTENSORNET_CONTRACTION_OPTIMIZER_CONFIG_SMART_OPTION
)。 此更改也适用于公共 API,包括cuquantum.contract()
、cuquantum.contract_path()
和cuquantum.OptimizerOptions
。当运行超优化器以使用
cuquantum.contract_path()
等计算最佳收缩路径时,根据问题规模,这可能是长时间运行的,现在可以通过 Ctrl-C 中止。与 CUDA 12 兼容的 Conda 包在 conda-forge 上可用。 如果需要,用户可以使用新的
cuda-version
元软件包指定目标 CUDA 版本。 例如,conda install -c conda-forge cuquantum-python cuda-version=12.0
或conda install -c conda-forge cuquantum-python cuda-version=11.8
。 此支持已向后移植到 cuQuantum Python 23.03。改进 pip 依赖项管理:当通过 pip 安装
cuquantum-python
或cuquantum-python-cu12
时,我们将尝试推断兼容的 CuPy wheel 并安装它(在 23.03 版本中注意以下注意事项)。 例外是cuquantum-python-cu11
,对于这种情况,我们要求用户按照 CuPy 的安装指南,从cupy-cuda110
、cupy-cuda111
或cupy-cuda11x
中显式选择并安装。如果使用 pip 23.1+ 安装元软件包
cuquantum-python
,则需要将--no-cache-dir
传递给 pip。
兼容性说明:
cuQuantum Python 现在需要 Python 3.9+
cuQuantum Python 现在需要 NumPy v1.21+
cuQuantum Python 现在需要 CuPy v10+
已知问题:
在单精度下,当输入张量/矩阵的秩较低时,基于
"gesvdr"
的张量 SVD 可能会降低精度。当
"gesvdp"
算法用于张量 SVD 时,用户有责任检查cuquantum.cutensornet.tensor.SVDInfo.gesvdp_err_sigma
以监控收敛性。
cuQuantum Python v23.03.0¶
添加新的 API 和功能
对于底层 API,请参考 cuStateVec v1.3.0 和 cuTensorNet v2.1.0 的发行说明。
一个新的模块
cuquantum.cutensornet.tensor
,通过cuquantum.cutensornet.tensor.decompose()
和cuquantum.cutensornet.tensor.DecompositionOptions
支持张量分解例程。 新模块也可以通过cuquantum
命名空间直接访问。 支持以下分解方法通过
cuquantum.cutensornet.tensor.QRMethod
进行 QR 分解。通过
cuquantum.cutensornet.tensor.SVDMethod
进行精确和近似奇异值分解 (SVD)。 对于近似 SVD,关于截断的运行时信息存储在cuquantum.cutensornet.tensor.SVDInfo
中并通过它访问。
一个新的模块
cuquantum.cutensornet.experimental
,带有实验性 API,包括cuquantum.cutensornet.experimental.contract_decompose()
、cuquantum.cutensornet.experimental.ContractDecomposeAlgorithm
和cuquantum.cutensornet.experimental.ContractDecomposeInfo
。 这些实验性 API 可用于执行复合收缩和分解操作。 请注意,所有新的实验性 API 在未来的版本中都可能会发生更改。 请在 NVIDIA/cuQuantum GitHub 讨论区 上与我们分享您的反馈!添加了一个新的属性
cuquantum.CircuitToEinsum.gates
,以允许用户从cuquantum.CircuitToEinsum
访问门操作数。
API 变更
删除了
cuquantum.CircuitToEinsum.state_vector()
中对fixed
kwarg 的支持。 可以通过cuquantum.CircuitToEinsum.batched_amplitudes()
中相同的fixed
kwarg 实现相同的功能。
错误修复
当以隐式形式提供 Einstein 求和表达式时,输出模式标签未按字典顺序排序(这是 cuQuantum Python v0.1.0.1 中的回归)。
修复了使用 MPICH 时的并行收缩失败问题 (NVIDIA/cuQuantum#31)。
其他更改
cuQuantum Python 现在支持 Python 3.11。
cuQuantum Python 现在支持 CUDA 12。
在 PyPI.org 上为 CUDA 12 用户发布了一组带有后缀
-cu12
的新 wheels。示例:
pip install cuquantum-python-cu12 cupy-cuda12x
用于设置与 CUDA 12 兼容的基于 wheel 的环境现有的
cuquantum
和cuquantum-python
wheels(不带-cuXX
后缀)已转换为自动安装程序,它们将尝试检测当前的 CUDA 环境并安装相应的 wheels。 请注意,此自动检测可能会遇到检测不成功的情况,尤其是在纯 CPU 环境(如 CI/CD)中。 如果检测失败,我们假设目标环境是 CUDA 11 并继续。 此假设可能会在未来的版本中更改,在这种情况下,我们建议用户显式(手动)安装正确的 wheels。
对于 conda 包,目前 CUDA 12 支持正在等待 NVIDIA 领导的社区工作 (conda-forge/staged-recipes#21382)。 一旦 conda-forge 支持 CUDA 12,我们将提供兼容的 conda 包。
支持 CUDA 延迟加载。 这可以通过将所需 GPU 内核的加载延迟到第一个调用站点来显着减少内存占用。 此功能需要 CUDA 11.8(或更高版本)和 cuTENSOR 1.7.0(或更高版本)。 有关其他要求和详细信息,请参阅 CUDA 文档。 目前,此功能需要用户通过设置环境变量
CUDA_MODULE_LOADING=LAZY
来选择加入。 在未来的 CUDA 版本中,延迟加载可能会成为默认设置。如果您是 wheel 用户,请使用
pip install "cutensor-cuXX>=1.7"
(XX
= 11 或 12) 更新您的环境。如果您是 conda 用户,请使用
conda install -c conda-forge "cudatoolkit>=11.8" "cutensor>=1.7"
(对于 CUDA 11)更新您的环境。
我们的支持策略已阐明,请参阅 兼容性策略。
兼容性说明:
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 讨论区与我们联系。
错误报告仍然应发送到 我们的 GitHub 问题跟踪器。
添加新的 API 和功能
对于 cuTensorNet 底层 API,请参考 cuTensorNet v2.0.0 的发行说明; 没有添加新的 cuStateVec API。
一个新的 API,
cuquantum.CircuitToEinsum.batched_amplitudes()
,用于计算一批量子比特的振幅。 这等效于cuquantum.CircuitToEinsum.state_vector()
中的 kwargsfixed
支持,该支持已弃用,将在未来的版本中删除。一个新的 API,
cuquantum.CircuitToEinsum.expectation()
,用于支持 Pauli 字符串的期望值计算。一个新的辅助 API,
cuquantum.cutensornet.get_mpi_comm_pointer()
,用于获取 MPI 通信器的指针和大小,用于新的底层 APIcuquantum.cutensornet.distributed_reset_configuration()
,该 API 实现了分布式并行性。 此功能需要mpi4py
。cuquantum
模块现在有一个命令行界面,用于返回 cuTENSOR 和 cuQuantum 库的 include 和 library 路径以及链接器标志:python -m cuquantum
。 有关详细信息,请参阅 命令行支持。通过新选项
cuquantum.NetworkOptions.blocking
支持控制非阻塞行为。
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.0 和 cuTensorNet v1.1.0 的发布说明。
新的高级 API
cuquantum.CircuitToEinsum
支持将qiskit.QuantumCircuit
和cirq.Circuit
转换为张量网络收缩支持状态系数
支持位串幅度
支持约化密度矩阵
后端支持 NumPy、CuPy 和 PyTorch
在
cuquantum.Network.contract()
方法中添加了一个仅关键字参数slices
,以支持收缩切片的任意子集。在
cuquantum.OptimizerInfo
对象中添加了一个新的属性intermediate_modes
,用于检索所有中间张量的模式标签。在
cuquantum.OptimizerInfo
对象中添加了一个新的属性num_slices
,用于查询切片总数。
功能/性能改进
改进了 einsum 表达式解析器。
错误修复
修复了当
optimize
设置为False
时,在cuquantum.einsum()
中错误引发异常的问题。修复了
cuquantum.OptimizerInfo
的字符串表示中缺少 f-specifier 的问题。
其他更改
移除了对
typing_extensions
的依赖。提供了分布式(基于 MPI)Python 示例,展示了使用 cuTensorNet 和创建并行性有多么容易。
mpi4py
是运行这些示例所必需的。更新了底层的、非分布式示例
tensornet_example.py
,改进了内存使用,并切换到新的收缩 APIcontract_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¶
错误修复
使
typing_extensions
成为必需的依赖项(NVIDIA/cuQuantum#3)修复了测试套件中的问题
其他更改
更新了 Python 示例 (python/samples/tensornet_example.py),以包含正确性检查
cuQuantum Python v22.03.0¶
稳定版本发布
从本版本开始,cuQuantum Python 切换到 CalVer 版本控制方案,与 cuQuantum SDK 保持一致
pip
wheels 在 PyPI 上发布:pip install cuquantum-python
功能/性能改进
高级张量网络 API 现在完全兼容 NumPy
支持广义 einsum 表达式
支持省略号
支持广播
为以下内容添加了新的 API 和功能
对于底层 API,请参阅 cuStateVec v1.0.0 和 cuTensorNet v1.0.0 的发布说明。
高级 API 支持类似 EMM 的内存插件接口(请参阅 外部内存管理)。
API 变更
对于底层 API,请参阅 cuStateVec v1.0.0 和 cuTensorNet v1.0.0 的发布说明。
高级 API 没有 API breaking changes。
兼容性说明:
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
(通过pip
或conda
)。这仅影响 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
。