使用參數化編譯加速混合作業 - Amazon Braket

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用參數化編譯加速混合作業

Amazon Braket 支持某些QPUs參數編譯。這使您可以通過僅編譯一次電路而不是混合算法中的每次迭代來減少與計算昂貴的編譯步驟相關的開銷。這樣可以大幅改善混合式工作的執行時間,因為您避免在每個步驟中重新編譯電路的需求。只需將參數化電路提交給我們QPUs作為 Braket 混合 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 指令碼提交演算法指令碼,以「混合工作」的形式執行。在支援參數式編譯QPU的上執行混合 Job 時,僅在第一次執行時編譯電路。在接下來的執行中,會重複使用編譯的電路,以增加混合 Job 的執行階段效能,而不需要任何額外的程式碼行。

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

所有超導,基於門QPUs的來源都支持參數編譯 Rigetti Computing 除了脈衝水平程序。