翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Braket シミュレーターの比較
このセクションでは、いくつかの概念、制限、ユースケースを説明して、量子タスクに最も適した Amazon Braket シミュレーターを選択するのに役立ちます。
ローカルシミュレーターとオンデマンドシミュレーター (SV1、TN1、DM1) からの選択
ローカルシミュレーターのパフォーマンスは、シミュレーターの実行に使用する Braket ノートブックインスタンスなどのローカル環境をホストするハードウェアによって異なります。オンデマンドシミュレーターは AWS クラウドで実行され、一般的なローカル環境を超えてスケールするように設計されています。オンデマンドシミュレーターは、より大きな回路用に最適化されていますが、量子タスクまたは量子タスクのバッチごとにレイテンシーオーバーヘッドが掛かります。これは、多くの量子タスクが関与する場合にはトレードオフを意味する可能性があります。これらの一般的なパフォーマンス特性を考慮すると、次のガイダンスは、ノイズのあるシミュレーションを含むシミュレーションの実行方法を選択するのに役立ちます。
シミュレーションの場合:
-
使用するqubitsが 18 未満の場合は、ローカルシミュレーターを使用します。
-
使用するqubitsが 18~24 の場合は、ワークロードに応じたシミュレーターを選択します。
-
使用するqubitsが 24 を超える場合は、オンデマンドシミュレーターを使用します。
ノイズシミュレーションの場合:
-
使用するqubitsが 9 未満の場合は、ローカルシミュレーターを使用します。
-
使用するqubitsが 9~12 の場合は、ワークロードに応じたシミュレーターを選択します。
-
使用するqubitsが 12 を超える場合は、DM1 を使用します。
状態ベクトルシミュレーターとは何ですか?
SV1 はユニバーサル状態ベクトルシミュレーターです。量子状態の全波動関数を格納し、ゲート演算を状態に順次適用します。それは、非常にありそうもないものであっても、すべての可能性を格納します。SV1 シミュレーターによる量子タスクの実行時間は、回路内のゲート数に比例して増大します。
密度マトリックスシミュレーターとは何ですか?
DM1 はノイズのある量子回路をシミュレートします。システムの全密度マトリックスを保存し、回路のゲートとノイズ演算を順次適用します。最終的な密度マトリックスには、回路の実行後の量子状態の完全な情報が含まれています。通常、実行時間は操作数に応じて直線的にスケールされ、qubits数に応じて指数関数的にスケールされます。
テンソルネットワークシミュレーターとは何ですか?
TN1 は量子回路を構造化グラフにエンコードします。
-
グラフのノードは、量子ゲート、つまりqubitsで構成されます。
-
グラフのエッジは、ゲート間の接続を表します。
この構造の結果、TN1 は比較的大規模で複雑な量子回路のシミュレーション解を見つけることができます。
TN1 には 2 つのフェーズが必要
通常、TN1 は量子計算をシミュレートする 2 フェーズアプローチで動作します。
-
リハーサルフェーズ: このフェーズでは、TN1 は効率的な方法でグラフをトラバースする方法を考え出します。これには、すべてのノードにアクセスして、目的の測定値を取得できます。TN1 が両方のフェーズを一緒に実行するため、ユーザーにはこのフェーズが表示されません。TN1 は、第 1 フェーズを完了し、実用的な制約に基づいて、第 2 フェーズを実行するかどうかを TN1 自身で決定します。シミュレーションが開始すれば、この決定のための入力をユーザーが行うことはありません。
-
収縮フェーズ: このフェーズは、古典的なコンピュータにおける計算の実行フェーズに似ています。このフェーズは、一連のマトリックス乗算で構成されます。これらの乗算の順序は、計算の難しさに大きな影響を与えます。したがって、グラフ全体で最も効果的な計算パスを見つけるために、最初にリハーサルフェーズを実行します。リハーサルフェーズ中に収縮経路が検出されると、TN1 は回路のゲートを集約してシミュレーションの結果を生成します。
TN1 グラフは地図に似ている
比喩的に、基礎となる TN1 グラフを都市の道路と比較できます。計画されたグリッドがある都市では、地図を使用して目的地までのルートを簡単に見つけることができます。計画外の道路や道路名が重複している都市では、地図を見て目的地までのルートを見つけるのが難しい場合があります。
TN1 がリハーサルフェーズを行わなかった場合、最初に地図を見る代わりに、街の通りを歩いて目的地を見つけるようなものになります。地図を見るのにより多くの時間を費やすことは、歩く時間という点で本当に報われるでしょう。同様に、リハーサルフェーズは貴重な情報を提供します。
TN1 は通過する基礎回路の構造について特定の「認識」を持っていると言えるかもしれません。この意識はリハーサルフェーズ中に高まります。
これらのタイプのシミュレーターに最も適した問題の種類
SV1 は、主に特定の数のqubitsとゲートを持つことに依存する問題のクラスに適しています。一般的に、必要な時間はゲートの数に応じて直線的に増加しますが、shots数には依存しません。SV1 は 28 未満のTN1の回路の qubits よりも通常、高速です。
SV1は、非常にありそうもないものであっても、実際にはすべての可能性をシミュレートするため、より高いqubit数では遅くなる可能性があります。どの結果が出そうなのかを判断する方法はありません。したがって、30-qubitの評価では、SV1 は 2^30 の設定を計算する必要があります。Amazon Braket SV1 シミュレーターの 34 qubitsの制限は、メモリとストレージの制約による実際的な制約です。これは、「SV1に 1 qubitを追加するたびに、問題は 2 倍難しくなる」と考えることができます。
多くのクラスの問題について、TN1 は SV1 よりもはるかに大きな回路を現実的な時間で評価できます。TN1 はグラフの構造を利用するためです。TN1 は、基本的には、最初から解の進化を追跡し、効率的なトラバーサルに寄与する設定のみを保持します。別の言い方をすると、TN1 はマトリックス乗算の順序を作成する設定を保存することで、評価プロセスをよりシンプルにします。
TN1 の場合、qubitsとゲートの数は重要ですが、グラフの構造はもっと重要です。例えば、TN1 は、ゲートが短距離である回路 (グラフ) を評価するのに非常に優れており (つまり、各qubitはその近傍qubitsにのみゲートによって接続される) 、接続 (またはゲート) が類似の範囲を持つ回路 (グラフ) を評価します。TN1 にとって典型的な範囲は、各qubitが他のqubitsと 5 qubits離れている位置でのみ相互作用することです。構造の大部分がこれらのようなより単純な関係に分解できれば、そういった単純な関係はより大きい、またはより小さい、あるいはより均一なマトリックスで表すことができるため、TN1 は評価を効率的に実行するようになります。
TN1 の制約事項
グラフの構造的複雑さSV1によっては、TN1 は よりも遅くなる場合があります。いくつかのグラフの場合、TN1 はリハーサルステージの後にシミュレーションを終了し、次の 2 つの理由のいずれかで FAILED ステータスを表示します。
-
パスが見つかりません — グラフが複雑すぎると、良好なトラバーサル経路を見つけるのが難しくなりすぎ、シミュレーターが計算をあきらめます。TN1 は収縮を実行できなくなります。以下のようなエラーメッセージが表示されることがあります:
No viable contraction path found. -
収縮段階が難しすぎる — 一部のグラフでは、TN1 はトラバーサルパスを見つけることができますが、非常に長く、評価に非常に時間がかかります。この場合、収縮は非常に高価であるため、コストは法外になります。このため、TN1 は収縮せずにリハーサルフェーズの後に終了します。以下のようなエラーメッセージが表示されることがあります:
Predicted runtime based on best contraction path found exceeds TN1 limit.
注記
収縮を行わない場合でも、TN1 のリハーサルステージの料金が請求され、FAILED ステータスが表示されます。
また、予測される実行時間はshot数に依存します。最悪のシナリオでは、TN1 収縮時間はshot数に線形に依存します。shots数が少ない場合、回路が収縮する可能性があります。例えば、ユーザーが 100 shotsで量子タスクを送信すると、TN1 が収縮不可能として判断しますが、10 ショットだけで再送信すると、収縮が進行します。この状況では、100 個の標本を取得するために、同じ回路に対して10 shotsの 10 個の量子タスクを送信し、最終的に複数の結果を合成することができます。
ベストプラクティスとして、より多くのshotsを実行する前に、回路または回路クラスを数shots (例えば 10) でテストし、TN1 の回路の難易度を調べることをお勧めします。
注記
収縮フェーズを形成する一連の乗算は、小さな NxN マトリックスで始まります。例えば、2-qubitのゲートには 4x4 マトリックスが必要です。難しすぎると判断される収縮中に必要な中間行列は巨大です。このような計算には、完了までに数日かかるでしょう。だからこそ、Amazon Braket は極端に複雑な収縮を試みないのです。
同時実行
すべての Braket シミュレーターを使用すると、複数の回路を同時に実行できます。同時実行数の制限は、シミュレーターとリージョンによって異なります。同時実行数量の制限の詳細については、「Quotas」ページを参照してください。