本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
比較 Amazon Braket 模擬器
本節說明一些概念、限制和使用案例,協助您選取最適合量子任務的 Amazon Braket 模擬器。
在本機模擬器和隨需模擬器之間進行選擇 (SV1、TN1、DM1)
本機模擬器的效能取決於託管本機環境的硬體,例如用於執行模擬器的 Braket 筆記本執行個體。隨需模擬器在 AWS 雲端中執行,旨在擴展到超越典型的本機環境。隨需模擬器已針對較大的電路進行最佳化,但每個量子任務或量子任務批次會增加一些延遲額外負荷。如果涉及許多量子任務,這可能表示權衡。鑑於這些一般效能特性,下列指引可協助您選擇如何執行模擬,包括有雜訊的模擬。
對於模擬:
-
使用少於 18 個 時qubits,請使用本機模擬器。
-
使用 18–24 時qubits,請根據工作負載選擇模擬器。
-
使用超過 24 個 時qubits,請使用隨需模擬器。
對於雜訊模擬:
-
使用少於 9 個 時qubits,請使用本機模擬器。
-
使用 9–12 時qubits,請根據工作負載選擇模擬器。
-
使用超過 12 個 時qubits,請使用 DM1。
什麼是狀態向量模擬器?
SV1 是通用狀態向量模擬器。它會儲存量子狀態的完整波動函數,並依序將閘道操作套用至狀態。它儲存了所有可能性,即使是非常不可能的可能性。量子任務的SV1模擬器執行時間會隨著電路中的閘道數量線性增加。
什麼是密度矩陣模擬器?
DM1 模擬具有雜訊的量子電路。它會存放系統的完整密度矩陣,並依序套用電路的閘道和雜訊操作。最終密度矩陣包含迴路執行後量子狀態的完整資訊。執行時間通常會隨操作數目線性擴展,並以 數目呈指數擴展qubits。
什麼是張量網路模擬器?
TN1 將量子電路編碼為結構化圖形。
-
圖形的節點由量子閘道或 組成qubits。
-
圖形的邊緣代表閘道之間的連線。
由於此結構, TN1可以找到相對大型和複雜量子電路的模擬解決方案。
TN1 需要兩個階段
一般而言, 會以兩階段方法來TN1模擬量子運算。
-
演練階段:在此階段中, TN1 會想出一種以有效率的方式周遊圖形的方法,其中包括造訪每個節點,以便您取得所需的測量。身為客戶,您看不到此階段,因為 會為您同時TN1執行兩個階段。它會完成第一個階段,並根據實際限制,決定是否自行執行第二個階段。模擬開始後,您就沒有對該決策的輸入。
-
收縮階段:此階段類似於傳統電腦中運算的執行階段。階段由一系列矩陣乘法組成。這些乘法的順序對運算的難度有很大的影響。因此,演練階段會先完成,以找出圖形中最有效的運算路徑。在演練階段找到收縮路徑後, 會與您電路的閘道一起TN1收縮,以產生模擬的結果。
TN1 圖形類似於映射
簡言之,您可以將基礎TN1圖形與城市的街道進行比較。在具有計劃網格的城市中,使用地圖輕鬆找到目的地的路由。在具有意外街道、重複街道名稱等的城市中,查看地圖可能很難找到通往目的地的路線。
如果 TN1 未執行演練階段,就好像在城市的街道四處走動來尋找目的地,而不是先看地圖。在行走時間上,花更多時間看地圖,可以真正獲得回報。同樣地,演練階段提供寶貴的資訊。
您可能會說 對其周遊的基礎電路結構TN1有一定的「感知」。它會在演練階段期間獲得此意識。
最適合每種模擬器的問題類型
SV1 非常適合任何主要依賴具有特定數量 qubits和 閘道的問題類別。一般而言,所需的時間會隨著閘道數量線性增長,而它不取決於 的數量shots。 SV1 通常比 TN1 28 以下的電路更快qubits。
SV1 對於較高的qubit數字,速度可能會變慢,因為它實際上模擬了所有可能性,即使非常不可能也一樣。它無法判斷哪些結果可能。因此,對於30-qubit評估, SV1 必須計算 2^30 個組態。由於記憶體和儲存限制qubits,AmazonRaket SV1 模擬器的限制為 34。您可以像這樣想:每次將 新增至 qubit 時SV1,問題會變得兩倍硬。
對於許多類別的問題, TN1可以在實際時間評估比 更大的電路SV1,因為 TN1 會利用圖形的結構。它基本上會從一開始就追蹤解決方案的演變,而且只會保留有助於有效周遊的組態。換句話說,它會儲存組態,以建立矩陣乘法的排序,進而產生更簡單的評估程序。
對於 TN1, qubits和 閘道的數量很重要,但圖形的結構更重要。例如, TN1 非常善於評估閘道為短距離的電路 (圖形) (亦即,每個閘道僅qubit連接到其最近的鄰近 qubits),以及連線 (或閘道) 具有類似範圍的電路 (圖形)。的典型範圍TN1是只與 5 qubits 個qubits以外的其他 進行每個qubit通話。如果大多數結構可以分解為更簡單的關係,例如這些關係,可以用更多、更小或更統一的矩陣表示,則 會有效率地TN1執行評估。
的限制 TN1
TN1 速度可能比SV1圖形的結構複雜度慢。對於某些圖形, 會在演練階段後TN1終止模擬,並顯示狀態為 FAILED
,因為下列兩種原因之一:
-
找不到路徑 - 如果圖形太複雜,則很難找到良好的周遊路徑,且模擬器放棄運算。 TN1無法執行收縮。您可能會看到類似以下的錯誤訊息:
No viable contraction path found.
-
收縮階段太困難 – 在某些圖形中, TN1可以找到周遊路徑,但評估非常長且非常耗時。在這種情況下,收縮非常昂貴,成本會過高,而是在演練階段之後TN1退出。您可能會看到類似以下的錯誤訊息:
Predicted runtime based on best contraction path found exceeds TN1 limit.
注意
即使未執行收縮且您看到 FAILED
狀態,TN1仍會向您收取 的演練階段費用。
預測的執行時間也取決於shot計數。在最壞的情況下,TN1收縮時間會線性取決於shot計數。電路可能可以與較少的 簽訂合約shots。例如,您可以提交具有 100 個 的量子任務shots,該任務TN1判定為不可收縮,但如果您只以 10 個重新提交,則收縮會繼續進行。在這種情況下,若要取得 100 個範例,您可以shots為相同電路提交 10 個量子任務 10 個量子任務,並在結尾合併結果。
最佳實務是,建議您一律使用幾個 shots(例如 10) 測試您的電路或電路類別,以了解您的電路對 的硬度TN1,然後再繼續執行更多數量的 shots。
注意
形成收縮階段的乘法系列以小型 NxN 矩陣開頭。例如,2-qubit閘道需要 4x4 矩陣。在經判定為太困難的收縮期間所需的中繼矩陣是巨大的。這種運算需要數天才能完成。因此 Amazon Braket 不會嘗試非常複雜的收縮。
並行數量
所有 Braket 模擬器都可讓您同時執行多個電路。並行限制因模擬器和區域而異。如需並行限制的詳細資訊,請參閱配額頁面。