パラメトリックコンパイルを使用してハイブリッドジョブを高速化する - Amazon Braket

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

パラメトリックコンパイルを使用してハイブリッドジョブを高速化する

Amazon Braket は、特定の でパラメトリックコンパイルをサポートしていますQPUs。これにより、ハイブリッドアルゴリズムの反復ごとに回路を 1 回だけコンパイルすることで、計算コストの高いコンパイルステップに関連するオーバーヘッドを削減できます。これにより、各ステップで回路を再コンパイルする必要がなくなるため、ハイブリッドジョブのランタイムが大幅に向上します。Braket Hybrid Job QPUsとしてサポートされている のいずれかにパラメータ化された回路を送信するだけです。長時間実行されるハイブリッドジョブの場合、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.")

次のジョブスクリプトを使用して、ハイブリッドジョブとして実行するアルゴリズムスクリプトを送信できます。パラメトリックコンパイルQPUをサポートする で Hybrid Job を実行する場合、回路は最初の実行時にのみコンパイルされます。次の実行では、コンパイルされた回路が再利用され、コード行を追加することなく Hybrid Job のランタイムパフォーマンスが向上します。

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

パラメトリックコンパイルは、 QPUsからのゲートベースのすべてのスーパーコンダクティングでサポートされています。Rigetti Computing 。ただし、脈波レベルプログラムを除く。