使用参数化编译加快混合作业的速度 - Amazon Braket

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用参数化编译加快混合作业的速度

Amazon Braket 在某些方面支持参数化编译。QPUs这使您能够通过只编译一次电路,而不是为混合算法中的每次迭代编译一次来减少与计算成本高昂的编译步骤相关的开销。这可以显著缩短 Hybrid Jobs 的运行时间,因为您无需在每一步都重新编译电路。只需将参数化电路提交给我们支持的 QPUs Braket Hybrid Job。对于长时间运行的混合作业,Braket在编译电路时会自动使用硬件提供商提供的更新的校准数据,以确保获得最高质量的结果。

要创建参数化电路,首先需要在算法脚本中提供参数作为输入。在这个例子中,我们使用了一个小的参数化电路,忽略了每次迭代之间的任何经典处理。对于典型的工作负载,您需要批量提交许多电路并执行经典处理,例如在每次迭代中更新参数。

import os from braket.aws import AwsDevice from braket.circuits import Circuit, FreeParameter def start_here(): print("Test job started.") # Use the device declared in the job script device = AwsDevice(os.environ["AMZN_BRAKET_DEVICE_ARN"]) circuit = Circuit().rx(0, FreeParameter("theta")) parameter_list = [0.1, 0.2, 0.3] for parameter in parameter_list: result = device.run(circuit, shots=1000, inputs={"theta": parameter}) print("Test job completed.")

您可以使用以下作业脚本提交算法脚本以混合 Job 的形式运行。在支持参数化编译的上运行 Hybrid Job 时,仅在第一次运行时才编译电路。QPU在接下来的运行中,将重复使用编译后的电路,无需任何额外的代码行即可提高 Hybrid Job 的运行时性能。

from braket.aws import AwsQuantumJob job = AwsQuantumJob.create( device=device_arn, source_module="algorithm_script.py", )
注意

所有超导、基于门的超导都支持参数化编译 QPUs Rigetti Computing 脉冲电平程序除外。