量子计算突飞猛进!NVIDIA CUDA-Q 0.12版本性能飙升18倍!

2025-08-05量子技术

Image

NVIDIA CUDA-Q 0.12 版本发布,为研究人员开发量子应用和设计高性能量子硬件提供了更强大的模拟工具。
图片说明

其中,新的运行 API 允许用户获取更详细的模拟运行统计数据,不再局限于模拟产生的聚合统计输出。对于研究人员来说,访问原始数据至关重要,这有助于他们分析量子比特之间的噪声相关性、进行结果后选择以及精确的电路基准测试等。

  1. 12 版本还增强了 CUDA-Q 动力学后端的功能,该后端主要用于模拟量子系统的演化,对于建模和改进量子硬件具有重要意义。 新版本改进了对多对角稀疏矩阵的支持,并可以批量处理状态和算子,从而扩展了动力学技术的应用范围。 此外,CUDA-Q 动力学现在支持通用的超算子方程,为研究人员提供了更大的灵活性。

CUDA-Q 是一个开源项目,新版本也包含了来自 unitaryHACK 活动的社区贡献,并且支持 Python 3.13。 下文将详细介绍这些新功能。 更多信息,请参考 CUDA-Q 0.12 版本说明。

CUDA-Q 从一开始就被设计为支持编写混合量子-经典应用程序,它使用内核编程模型来协调 QPU、GPU 和 CPU。 在量子设备上运行的逻辑被封装在量子内核中。 执行内核有多种方法,其中一种是使用 sample API,它可以返回内核中量子比特测量结果的聚合统计信息。

例如,对于一个接受三个量子比特并将 GHZ 状态应用于它们的内核,使用此内核调用 sample 并指定 1,000 次,将返回在这 1,000 次中观察到的测量结果的聚合统计信息,如 { 000:492 111:508 }。 正如 GHZ 状态所预期的那样,000 和 111 的结果以大致相等的概率被观察到。 然而,我们无法了解关于每次的更多细节。

import cudaq

@cudaq.kernel
def simple_ghz(num_qubits: int) -> int:
    qubits = cudaq.qvector(num_qubits)

    # Create GHZ state
    h(qubits[0])
    for i in range(1, num_qubits):
        x.ctrl(qubits[0], qubits[i])

    result = 0
    for i in range(num_qubits):
        if mz(qubits[i]):
            result += 1
    return result

shots = 20  # using small number of shots for simplicity
sample_results = cudaq.sample(simple_ghz, 3, shots_count=shots)
print(f"Sample results: {sample_results}")

run_results = cudaq.run(simple_ghz, 3, shots_count=shots)
print(f"Run results: {run_results}")
$ python3 test.py
Sample results: { 000:11 111:9 }
Run results: [0, 3, 0, 0, 0, 0, 3, 0, 0, 3, 3, 3, 3, 3, 0, 3, 0, 3, 3, 3]

与 sample API 不同,run API 保留了每次的单独返回值,这在应用程序需要分析返回结果的分布时非常有用。 通过 run,内核可以更具表现力,并且可以有条件地测量特定的量子比特。 这些内核的返回值将是明确的,并且可以包含多种数据类型,包括使用 Python 数据类的自定义数据类型。 此外,run 还有一个异步版本 run_async,适用于长时间运行的执行。 目前,run 和 run_async 仅支持模拟后端。

更多信息和代码示例,请参考 CUDA-Q 文档。

CUDA-Q 动力学后端支持量子动力学系统的设计、模拟和执行。 0.12 版本对此后端进行了多项增强。

以前,系统动力学仅限于 Lindblad 主方程,该方程由哈密顿算子和崩塌算子指定。 现在,用户可以模拟任何任意状态演化方程,将演化指定为通用超算子。 超算子可以构造为算子实例的左和/或右乘法作用的线性组合。

此外,还增加了对多对角稀疏矩阵的更新支持。 根据算子矩阵的稀疏性或子系统维度,CUDA-Q 将自动使用密集或多对角数据格式以获得最佳性能。

CUDA-Q evolve API 可以在一段时间内演化多个初始状态和多个哈密顿量。 在 0.12 版本中,状态和哈密顿量都可以批量处理到多个 GPU 上。 这可以显著提高模拟许多小的相同系统动力学的性能,以用于参数扫描或层析成像。 崩塌算子和超算子也可以以类似的方式进行批量处理。

例如,一个电驱动硅自旋量子比特的动力学模拟涉及振幅值的参数扫描,并为每个振幅值创建一个哈密顿量。 在没有批量处理的情况下,这将导致多次调用 evolve,每个振幅值调用一次。 通过批量处理,用户可以使用 1,024 个不同的参数值创建以下哈密顿量批次:

# Sweep the amplitude
amplitudes = np.linspace(0.0, 0.5, 1024)

# Construct a list of Hamiltonian operators for each amplitude so that we can
# batch them all together
batched_hamiltonian = []
for amplitude in amplitudes:
    # Electric dipole spin resonance (`EDSR`) Hamiltonian
    H = 0.5 * resonance_frequency * spin.z(0) + amplitude * ScalarOperator(
        lambda t: 0.5 * np.sin(resonance_frequency * t)) * spin.x(0)
    # Append the Hamiltonian to the batched list
    # This allows us to compute the dynamics for all amplitudes in a single
    # simulation run
    batched_hamiltonian.append(H)

然后在对 evolve 的一次调用中使用它:

results = cudaq.evolve(
        batched_hamiltonian,
        dimensions,
        schedule,
        psi0,
        observables=[boson.number(0)],
        collapse_operators=[],
        store_intermediate_results=cudaq.IntermediateResultSave.EXPECTATION_VALUE,
        integrator=ScipyZvodeIntegrator())

在 NVIDIA H100 GPU 上使用不同的批次大小运行此示例,可以得到图 1 所示的不同参数值的结果。 批量处理的哈密顿量越多,总运行时间越短。 在一次 evolve 调用中批量处理所有 1,024 个哈密顿量,可以比不批量处理快 18 倍。
A graph showing the runtime and speedup of a simulation of a silicon spin qubit for each of the following batch sizes> 1 (no batching), 16, 64, 256, and 1024. Batching the Hamiltonians achieves lower runtime and higher speedup.

图 1. 在 NVIDIA H100 GPU 上对硅自旋量子比特进行模拟,使用 1,024 个不同的哈密顿量

有关更多详细信息(包括代码示例),请参考 CUDA-Q 文档。

unitaryHACK 是一个开源量子计算堆栈黑客马拉松,由 Unitary Foundation 组织,这是一个非营利组织,通过开源项目、微型资助和社区活动来支持量子计算社区。 作为最近的活动赞助商,NVIDIA 提交了五个 CUDA-Q 赏金,从而在 CUDA-Q 0.12 中促成了以下三个社区贡献:

  1. Gopal-Dahale 添加了一个使用动力学来制备具有捕获离子的 GHZ 状态的代码示例。 该示例基于论文《热捕获离子的多粒子纠缠》。
  2. ACE07-Sev 添加了一个关于使用 MPS 顺序编码进行近似状态制备的教程,展示了如何通过将初始状态向量分解为矩阵乘积状态来制备初始状态。 这在准备要在量子硬件上运行的任意输入状态时非常有用。 在这种情况下,矩阵乘积状态分解确保了输入状态向量的低深度近似电路。
  3. Randl 添加了一个获取与量子内核关联的矩阵的初始实现。 这个新的 API 返回表示所提供内核的执行路径(即轨迹)的酉矩阵。

CUDA-Q 是一个开源项目,全年接受社区贡献。 要了解更多信息,请访问 GitHub 上的 NVIDIA/cuda-quantum。

新媒网跨境了解到,CUDA-Q 的应用范围正在不断扩大,它为研究人员和开发者提供了一个强大的平台,能够加速量子计算领域的创新。

访问 CUDA-Q 快速入门以了解更多信息并开始使用。 探索 CUDA-Q 应用程序和动力学示例,并在 NVIDIA/cuda-quantum GitHub 存储库上与团队互动。 要了解更多关于用于实现加速量子超级计算的其他工具,请查看 NVIDIA Quantum。

新媒网跨境认为,随着量子计算技术的不断发展,CUDA-Q 将在推动该领域创新方面发挥越来越重要的作用。

新媒网(公号: 新媒网跨境发布),是一个专业的跨境电商、游戏、支付、贸易和广告社区平台,为百万跨境人传递最新的海外淘金精准资讯情报。

本文来源:新媒网 https://nmedialink.com/posts/10175.html

评论(0)

暂无评论,快来抢沙发~
NVIDIA CUDA-Q 0.12版本发布,增强了量子应用开发和高性能量子硬件设计的模拟工具。新版本改进了运行API,CUDA-Q动力学后端功能,支持多对角稀疏矩阵和批量处理,扩展了动力学技术的应用范围,并支持Python 3.13。
发布于 2025-08-05
查看人数 776
人民币汇率走势
CNY
关注我们
新媒网跨境发布
本站原创内容版权归作者及NMedia共同所有,未经许可,禁止以任何形式转载。