瞭解如何解譯和擷取資源估算器的輸出參數和圖表。 本文說明如何以程式設計方式存取 Visual Studio Code (VS Code) 中 Jupyter 筆記本中資源估算器的結果。
必要條件
已安裝 Python 和 Pip 的 Python 環境。
最新版本的 VS Code 或在 Web 上開啟 VS Code。
已安裝 Azure Quantum Development Kit、 Python 和 Jupyter 擴充功能的 VS Code。
最新的
qdkPython 函式庫,具有額外的功能jupyter。python -m pip install --upgrade "qdk[jupyter]"
注意
如果您從命令選項板在 VS Code 中執行資源估算器,則下列命令不適用。 如需詳細資訊,請參閱 執行資源估算器的不同方式。
輸出參數
資源估算器的輸出是列印至主控台的報告,您可以以程式設計方式存取。 例如,下列程式碼片段會顯示所有 Resource Estimator 參數的值:
result['jobParams']
下表包含每個輸出參數的資料類型和簡短說明。
| 最上層輸出參數 | 資料類型 | 描述 |
|---|---|---|
status |
字串 | 工作的狀態,一律 Succeeded為 。 |
jobParams |
字典 | target做為輸入傳遞之作業的參數。 |
physicalCounts |
字典 | 實體資源估計值。 如需詳細資訊,請參閱 實體計數。 |
physicalCountsFormatted |
字典 | 格式化為在報表數據中顯示的實體資源估計值。 如需詳細資訊,請參閱 格式化的實體計數。 |
logicalQubit |
字典 | 邏輯量子位屬性。 如需詳細資訊,請參閱 邏輯量子位。 |
tfactory |
字典 | T Factory 屬性。 |
logicalCounts |
字典 | 預先配置邏輯資源估計值。 如需詳細資訊,請參閱 邏輯計數。 |
reportData |
字典 | 資源估計報告的產生數據。 |
實體計數
physicalCounts字典包含下列項目:
| 輸出參數 | 資料類型 | 描述 |
|---|---|---|
physicalQubits |
數值 | 實體量子位的總數。 |
runtime |
數值 | 要在 nanoseconds 中執行演算法的總運行時間。 |
rqops |
數值 | 每秒可靠的量子作業數目(QOPS)。 |
breakdown |
字典 | 估計值的細目。 如需詳細資訊,請參閱 實體計數明細。 |
實體計數明細
的breakdownphysicalCounts字典包含下列專案:
| 輸出參數 | 資料類型 | 描述 |
|---|---|---|
algorithmicLogicalQubits |
數值 | 執行演算法所需的邏輯量子位,且不包含 T Factory 的資源。 |
algorithmicLogicalDepth |
數值 | 執行演算法所需的邏輯迴圈,且不包含 T Factory 的資源。 |
logicalDepth |
數值 | 每當 T Factory 執行時間比演算法執行更快時計算的可能調整週期數目。 |
numTstates |
數值 | 演算法所取用的 T 狀態數目。 |
clockFrequency |
數值 | 每秒的邏輯週期數目。 |
numTfactories |
數值 | T 工廠的數目 (假設統一的 T 工廠設計)。 |
numTfactoryRuns |
數值 | 所有平行 T Factory 應該執行的頻率數目。 |
physicalQubitsForTfactories |
數值 | 所有 T Factory 的實體量子位數目。 |
physicalQubitsForAlgorithm |
數值 | 演算法配置的實體量子位數目。 |
requiredLogicalQubitErrorRate |
數值 | 所需的邏輯錯誤率。 |
requiredLogicalTstateErrorRate |
數值 | 必要的邏輯 T 狀態錯誤率。 |
numTsPerRotation |
數值 | 每個旋轉的 T 閘道數目。 |
cliffordErrorRate |
數值 | 根據量子位參數的 Clifford 錯誤率。 |
格式化的實體計數
字典 physicalCounts 包含下列專案:
| 輸出參數 | 資料類型 | 描述 |
|---|---|---|
runtime |
字串 | 運行時間總計為人類易記字串。 |
rqops |
字串 | 以計量後綴格式化的每秒可靠量子作業數目(QOPS)。 |
physicalQubits |
字串 | 具有計量後綴的實體量子位總數。 |
algorithmicLogicalQubits |
字串 | 具有計量後綴的演演算法邏輯量子位。 |
algorithmicLogicalDepth |
字串 | 具有計量後綴的演演算法邏輯深度。 |
logicalDepth |
字串 | 可能已調整演算法邏輯深度與計量後綴。 |
numTstates |
字串 | 具有計量後綴的 T 狀態數目。 |
numTfactories |
字串 | 具有計量後綴的 T Factory 複本數目。 |
numTfactoryRuns |
字串 | 具有計量後綴的 T Factory 執行數目。 |
physicalQubitsForAlgorithm |
字串 | 具有計量後綴之演算法的實體量子位數目。 |
physicalQubitsForTfactories |
字串 | 具有計量後綴之 T Factory 的實體量子位數目。 |
physicalQubitsForTfactoriesPercentage |
字串 | 所有 T Factory 的實體量子位數目,以百分比表示總計。 |
requiredLogicalQubitErrorRate |
字串 | 截斷必要的邏輯量子位錯誤率。 |
requiredLogicalTstateErrorRate |
字串 | 截斷必要的 T 狀態錯誤率。 |
physicalQubitsPerLogicalQubit |
字串 | 每個邏輯量子位具有計量後綴的實體量子位數目。 |
logicalCycleTime |
字串 | 邏輯量子位作為人類易記字串的邏輯周期時間。 |
clockFrequency |
字串 | 每秒作為人類易記字串的邏輯迴圈數目。 |
logicalErrorRate |
字串 | 截斷邏輯錯誤率。 |
tfactoryPhysicalQubits |
字串 | T Factory 中具有計量後綴的實體量子位數目(或沒有 T Factory 的訊息)。 |
tfactoryRuntime |
字串 | 單一 T 處理站的運行時間做為人類易記字串(或沒有 T Factory 的訊息)。 |
numInputTstates |
字串 | 輸入 T 狀態的數目(或沒有 T Factory 的訊息)。 |
numUnitsPerRound |
字串 | 每個釀酒回合的單位數目、以字串分隔的逗號(或沒有 T Factory 的訊息)。 |
unitNamePerRound |
字串 | 每個釀酒回合的單位名稱,以逗號分隔在字串中(或沒有 T Factory 的訊息)。 |
codeDistancePerRound |
字串 | 每個釀酒回合的程式代碼距離、以字串分隔的逗號(或沒有 T Factory 的訊息)。 |
physicalQubitsPerRound |
字串 | 每個釀酒回合的實體量子位數目、以字串分隔的逗號(或沒有 T Factory 的訊息)。 |
tfactoryRuntimePerRound |
字串 | 每個釀酒回合的運行時間,顯示為逗號分隔的人類易記字串(或沒有 T Factory 的訊息)。 |
tstateLogicalErrorRate |
字串 | 截斷邏輯 T 狀態錯誤率(或沒有 T Factory 的訊息)。 |
logicalCountsNumQubits |
字串 | 具有計量後綴的量子位數(預先配置)。 |
logicalCountsTCount |
字串 | 具有計量後綴的 T 閘道數目(預先配置)。 |
logicalCountsRotationCount |
字串 | 具有計量後綴的旋轉門數(預先配置)。 |
logicalCountsRotationDepth |
字串 | 具有計量後綴的旋轉深度(預先配置)。 |
logicalCountsCczCount |
字串 | 具有計量後綴的CCZ門數(預先配置)。 |
logicalCountsCcixCount |
字串 | 具有計量後綴的 CCiX 閘道數目(預先配置)。 |
logicalCountsMeasurementCount |
字串 | 具有計量後綴的單一量子位度量數目(預先配置)。 |
errorBudget |
字串 | 截斷的總錯誤預算。 |
errorBudgetLogical |
字串 | 邏輯錯誤的截斷錯誤預算。 |
errorBudgetTstates |
字串 | 錯誤 T 狀態釀酒的截斷錯誤預算。 |
errorBudgetRotations |
字串 | 錯誤旋轉合成的錯誤預算已截斷。 |
numTsPerRotation |
字串 | 每個旋轉的格式化 T 數目(可能是 None)。 |
邏輯量子位
字典 physicalCounts 包含下列專案:
| 輸出參數 | 資料類型 | 描述 |
|---|---|---|
codeDistance |
數值 | 邏輯量子位的計算程式代碼距離。 |
physicalQubits |
數值 | 每個邏輯量子位的實體量子位數目。 |
logicalCycleTime |
數值 | 執行一個邏輯作業的時間。 |
logicalErrorRate |
數值 | 邏輯量子位的邏輯錯誤率。 |
邏輯計數
字典 physicalCounts 包含下列專案:
| 輸出參數 | 資料類型 | 描述 |
|---|---|---|
numQubits |
數值 | 量子位的預先配置數目。 |
tCount |
數值 | T 閘道的預先配置數目。 |
rotationCount |
數值 | 旋轉門的預先配置數目。 |
rotationDepth |
數值 | 預先配置旋轉深度。 |
cczCount |
數值 | CCZ 門的預先配置數目。 |
ccixCount |
數值 | CCiX 閘道的預先配置數目。 |
measurementCount |
數值 | 單一量子位測量的預先配置數目。 |
提示
如果您想要針對資源估計作業使用預先計算的邏輯計數集,您可以使用 LogicalCounts Python 作業將已知的估計值傳遞至資源估算器。 如需詳細資訊,請參閱 如何搭配資源估算器使用已知的估計值。
空間圖
整體實體資源估計是由演算法和 T Factory 複本所使用的實體量子位總數所組成。 您可以使用空格圖來檢查這兩者之間的分佈。
空間圖顯示演算法和 T Factory 所使用的實體量子位比例。 請注意,T Factory 複本數目會為 T Factory 的實體量子位數目做出貢獻。
在 Jupyter Notebook 中,您可以使用套件中的SpaceChartqsharp-widgets小工具來存取空間圖表。
from qdk.widgets import SpaceChart
SpaceChart(result)
餅圖顯示演算法量子位與 T Factory 量子位之間的實體量子位總計分佈。有一個數據表,其中包含 T 處理站複本數目和每個 T Factory 的實體量子位數目。
使用 Pareto 邊界估計執行多個參數位態target時,您可以繪製特定解決方案的空間圖表。 例如,下列程式代碼示範如何繪製參數第一個組態的空間圖表和第三個最短運行時間。
SpaceChart(result[0], 2) # First (estimate index=0) run and third (point index=2) shortest runtime
時空圖表
在量子運算中,實體量子位數目與演算法運行時間之間會有取捨。 您可以考慮盡可能配置盡可能多的實體量子位,以減少演算法的運行時間。 不過,實體量子位的數目會受限於量子硬體中可用的實體量子位數目。 瞭解運行時間與系統規模之間的取捨是資源估計最重要的層面之一。
在估計演算法的資源時,您可以使用時空圖表,將實體量子位數目與演算法運行時間之間的取捨可視化。
注意
若要查看空間時程圖表中的多個最佳組合,您必須將估計類型設定為 Pareto 邊際估計。 如果您在 Visual Studio Code 中使用 QDK:計算資源估計 值命令執行資源估計器,則預設會啟用 Pareto 邊界估計。
時空圖表可讓您找出滿足量子硬體條件約束之 {number of qubits, runtime} 配對的最佳組合。 此圖顯示每個 {量子位、runtime} 組之演演算法的實體量子位數目和運行時間。
若要在 Jupyter Notebook 中執行時空圖,請使用 widgets 套件中的 EstimatesOverview 元件。
from qdk.widgets import EstimatesOverview
EstimatesOverview(result, colors=["#1f77b4", "#ff7f0e"], runNames=["e4 Surface Code", "e6 Floquet Code"])
顯示資源估算器量子位時間圖表的螢幕快照。
提示
若要查看估計詳細數據,您可以將滑鼠停留在圖表中的每個點上。
在比較相同演算法的多個參數位態 target 時,時空圖表特別有用。
此螢幕快照顯示在資源估算器中執行多個參數位態時的時間圖表和結果數據表。
注意
如果您在使用「資源估算器」時遇到問題,請參閱 「疑難排解」頁面,或聯絡 AzureQuantumInfo@microsoft.com。