Amazon Braket シミュレーターの比較 - Amazon Braket

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

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」ページを参照してください。