리소스 추정기의 결과 데이터 이해
리소스 추정기의 출력 매개 변수 및 다이어그램을 해석하고 검색하는 방법을 알아봅니다. 이 문서에서는 Jupyter Notebook에서 리소스 추정기의 결과에 프로그래밍 방식으로 액세스하는 방법을 설명합니다. 명령 팔레트에서 Visual Studio Code에서 리소스 추정기를 실행하는 경우 다음 명령이 적용되지 않습니다.
필수 조건
Python 및 Pip가 설치된 Python 환경입니다.
최신 버전의 Visual Studio Code 또는 웹에서 VS Code를 엽니다.
Azure Quantum Development Kit, Python 및 Jupyter 확장이 설치된 VS Code
최신 Azure Quantum
qsharp
및qsharp-widgets
패키지입니다.python -m pip install --upgrade qsharp qsharp-widgets
출력 매개 변수
리소스 추정기의 출력 데이터는 콘솔에 인쇄되고 프로그래밍 방식으로 액세스할 수 있는 보고서입니다. 예를 들어 다음 코드 조각은 리소스 예측 매개 변수에 액세스하는 방법을 보여 있습니다.
result['jobParams']
다음 출력 데이터는 프로그래밍 방식으로 액세스할 수 있는 가능한 항목을 구성합니다.
최상위 출력 매개 변수 | 데이터 형식 | 설명 |
---|---|---|
status |
string | 작업의 상태, 항상 Succeeded . |
jobParams |
사전 | target 입력으로 전달되는 작업의 매개 변수입니다. |
physicalCounts |
사전 | 실제 자원 추정치입니다. 자세한 내용은 실제 개수를 참조 하세요. |
physicalCountsFormatted |
사전 | 보고서 데이터에 표시하기 위해 서식이 지정된 실제 리소스 추정치입니다. 자세한 내용은 서식이 지정된 실제 개수를 참조하세요. |
logicalQubit |
사전 | 논리 큐비트 속성입니다. 자세한 내용은 논리 큐비트를 참조하세요. |
tfactory |
사전 | T 팩터리 속성입니다. |
logicalCounts |
사전 | 사전 레이아웃 논리 리소스는 예상합니다. 자세한 내용은 논리 개수를 참조 하세요. |
reportData |
사전 | 리소스 예측 보고서에 대한 생성 데이터입니다. |
실제 개수
physicalCounts
사전에는 다음 항목이 포함됩니다.
출력 매개 변수 | 데이터 형식 | 설명 |
---|---|---|
physicalQubits |
number | 실제 큐비트의 총 수입니다. |
runtime |
number | 알고리즘을 실행할 총 런타임(나노초)입니다. |
rqops |
number | QOPS(신뢰할 수 있는 양자 연산 수)입니다. |
breakdown |
사전 | 예측의 분석입니다. 자세한 내용은 실제 개수 분석을 참조하세요. |
물리적 개수 분석
사전 physicalCounts
은 breakdown
다음 항목을 포함합니다.
출력 매개 변수 | 데이터 형식 | 설명 |
---|---|---|
algorithmicLogicalQubits |
number | 알고리즘을 실행하는 데 필요한 논리 큐비트는 T 팩터리에 대한 리소스를 포함하지 않습니다. |
algorithmicLogicalDepth |
number | 알고리즘을 실행하는 데 필요한 논리 주기이며 T 팩터리에 대한 리소스는 포함하지 않습니다. |
logicalDepth |
number | T 팩터리 실행 시간이 더 빠를 때마다 계산되는 조정된 주기 수는 알고리즘 실행일 수 있습니다. |
numTstates |
number | 알고리즘에서 사용하는 T 상태의 수입니다. |
clockFrequency |
number | 초당 논리 주기 수입니다. |
numTfactories |
number | T 팩터리 수입니다(균일한 T 팩터리 설계 가정). |
numTfactoryRuns |
number | 모든 병렬 T 팩터리를 실행하는 빈도입니다. |
physicalQubitsForTfactories |
number | 모든 T 팩터리에 대한 실제 큐비트 수입니다. |
physicalQubitsForAlgorithm |
number | 알고리즘 레이아웃의 실제 큐비트 수입니다. |
requiredLogicalQubitErrorRate |
number | 필요한 논리적 오류 비율입니다. |
requiredLogicalTstateErrorRate |
number | 필요한 논리적 T 상태 오류 비율입니다. |
numTsPerRotation |
number | 회전당 T 게이트 수입니다. |
cliffordErrorRate |
number | 큐비트 매개 변수를 기반으로 하는 Clifford 오류 비율입니다. |
서식이 지정된 실제 개수
physicalCountsFormatted
사전에는 다음 항목이 포함됩니다.
출력 매개 변수 | 데이터 형식 | 설명 |
---|---|---|
runtime |
string | 인간 친화적 문자열인 총 런타임입니다. |
rqops |
string | 메트릭 접미사로 서식이 지정된 QOPS(신뢰할 수 있는 양자 연산 수)입니다. |
physicalQubits |
string | 메트릭 접미사가 있는 총 실제 큐비트 수입니다. |
algorithmicLogicalQubits |
string | 메트릭 접미사가 있는 알고리즘 논리 큐비트입니다. |
algorithmicLogicalDepth |
string | 메트릭 접미사가 있는 알고리즘 논리 깊이입니다. |
logicalDepth |
string | 메트릭 접미사를 사용하여 알고리즘 논리 깊이를 조정할 수 있습니다. |
numTstates |
string | 메트릭 접미사가 있는 T 상태 수입니다. |
numTfactories |
string | 메트릭 접미사가 있는 T 팩터리 복사본 수입니다. |
numTfactoryRuns |
string | 메트릭 접미사가 있는 T 팩터리 실행 수입니다. |
physicalQubitsForAlgorithm |
string | 메트릭 접미사가 있는 알고리즘의 실제 큐비트 수입니다. |
physicalQubitsForTfactories |
string | 메트릭 접미사가 있는 T 팩터리의 실제 큐비트 수입니다. |
physicalQubitsForTfactoriesPercentage |
string | 모든 T 팩터리에 대한 실제 큐비트 수(백분율에서 합계)입니다. |
requiredLogicalQubitErrorRate |
string | 잘린 필수 논리 큐비트 오류 비율입니다. |
requiredLogicalTstateErrorRate |
string | 잘린 필수 T 상태 오류 비율입니다. |
physicalQubitsPerLogicalQubit |
string | 메트릭 접미사가 있는 논리 큐비트당 실제 큐비트 수입니다. |
logicalCycleTime |
string | 논리적 큐비트의 논리적 주기 시간(사람이 친숙한 문자열)입니다. |
clockFrequency |
string | 사람이 친숙한 문자열인 초당 논리 주기 수입니다. |
logicalErrorRate |
string | 잘린 논리적 오류 비율입니다. |
tfactoryPhysicalQubits |
string | 메트릭 접미사가 있는 T 팩터리의 실제 큐비트 수(또는 T 팩터리 없음) |
tfactoryRuntime |
string | 단일 T 팩터리의 런타임을 사람 친화적인 문자열(또는 T 팩터리 없음 메시지)입니다. |
numInputTstates |
string | 입력 T 상태(또는 T 팩터리 없음 메시지)의 수입니다. |
numUnitsPerRound |
string | 문자열로 구분된 쉼표(또는 T 팩터리 없음) 증류 라운드당 단위 수입니다. |
unitNamePerRound |
string | 문자열로 구분된 각 증류 라운드의 단위 이름(또는 T 팩터리 없음 메시지)입니다. |
codeDistancePerRound |
string | 코드는 문자열로 구분된 쉼표(또는 T 팩터리 없음 메시지)의 증류 라운드당 거리입니다. |
physicalQubitsPerRound |
string | 증류 라운드당 실제 큐비트 수, 문자열로 구분된 쉼표(또는 T 팩터리 없음 메시지) |
tfactoryRuntimePerRound |
string | 쉼표로 구분된 인간 친화적인 문자열(또는 T 팩터리 없음 메시지)으로 표시되는 각 증류 라운드의 런타임입니다. |
tstateLogicalErrorRate |
string | 잘린 논리적 T 상태 오류 비율(또는 T 팩터리 없음 메시지). |
logicalCountsNumQubits |
string | 메트릭 접미사가 있는 큐비트(사전 레이아웃) 수입니다. |
logicalCountsTCount |
string | 메트릭 접미사가 있는 T 게이트(사전 레이아웃) 수입니다. |
logicalCountsRotationCount |
string | 메트릭 접미사가 있는 회전 게이트(사전 레이아웃) 수입니다. |
logicalCountsRotationDepth |
string | 메트릭 접미사가 있는 회전 깊이(사전 레이아웃)입니다. |
logicalCountsCczCount |
string | 메트릭 접미사가 있는 CCZ 게이트(사전 레이아웃) 수입니다. |
logicalCountsCcixCount |
string | 메트릭 접미사가 있는 CCiX 게이트(사전 레이아웃) 수입니다. |
logicalCountsMeasurementCount |
string | 메트릭 접미사가 있는 단일 큐비트 측정(사전 레이아웃) 수입니다. |
errorBudget |
string | 총 오류 예산이 잘렸습니다. |
errorBudgetLogical |
string | 논리적 오류에 대한 오류 예산이 잘렸습니다. |
errorBudgetTstates |
string | 오류 T 상태 증류에 대한 오류 예산이 잘렸습니다. |
errorBudgetRotations |
string | 잘못된 회전 합성에 대한 오류 예산이 잘렸습니다. |
numTsPerRotation |
string | 회전당 형식이 지정된 Ts 수입니다(없음일 수 있습니다). |
논리 큐비트
logicalQubit
사전에는 다음 항목이 포함됩니다.
출력 매개 변수 | 데이터 형식 | 설명 |
---|---|---|
codeDistance |
number | 논리 큐비트의 계산된 코드 거리입니다. |
physicalQubits |
number | 각 논리 큐비트의 실제 큐비트 수입니다. |
logicalCycleTime |
number | 하나의 논리 작업을 실행할 시간입니다. |
logicalErrorRate |
number | 논리 큐비트의 논리적 오류 비율입니다. |
논리 개수
logicalCounts
사전에는 다음 항목이 포함됩니다.
출력 매개 변수 | 데이터 형식 | 설명 |
---|---|---|
numQubits |
number | 큐비트의 사전 레이아웃 수입니다. |
tCount |
number | T 게이트의 사전 레이아웃 번호입니다. |
rotationCount |
number | 회전 게이트의 사전 레이아웃 수입니다. |
rotationDepth |
number | 사전 레이아웃 회전 깊이입니다. |
cczCount |
number | CCZ 게이트의 사전 레이아웃 번호입니다. |
ccixCount |
number | CCiX 게이트의 사전 레이아웃 수입니다. |
measurementCount |
number | 단일 큐비트 측정의 사전 레이아웃 수입니다. |
팁
리소스 예측 작업에 대해 미리 계산된 논리 개수 집합을 사용하려는 경우 Python 작업을 사용하여 LogicalCounts
알려진 예측값을 리소스 예측 도구에 전달할 수 있습니다. 자세한 내용은 리소스 추정기에서 알려진 예상치를 사용하는 방법을 참조 하세요.
공간 다이어그램
전체 물리적 리소스 예측은 알고리즘 및 T 팩터리 복사본 모두에 사용되는 총 물리적 큐비트 수로 구성됩니다. 공간 다이어그램을 사용하여 이 둘 사이의 분포를 검사할 수 있습니다.
공간 다이어그램은 알고리즘 및 T 팩터리에 사용되는 실제 큐비트의 비율을 보여 줍니다. T 팩터리 복사본 수는 T 팩터리의 물리적 큐비트 수에 영향을 줍니다.
Jupyter Notebook에서 패키지의 위젯을 SpaceChart
사용하여 공간 다이어그램에 qsharp-widgets
액세스할 수 있습니다.
import qsharp
from qsharp_widgets import SpaceChart
SpaceChart(result)
Pareto 프론티어 추정을 사용하여 target 여러 매개 변수 구성을 실행하는 경우 특정 솔루션에 대한 공간 다이어그램을 그릴 수 있습니다. 예를 들어 다음 코드에서는 매개 변수의 첫 번째 구성과 세 번째로 짧은 런타임에 대한 공간 다이어그램을 그리는 방법을 보여 있습니다.
SpaceChart(result[0], 2) # First (estimate index=0) run and third (point index=2) shortest runtime
시공간 다이어그램
양자 컴퓨팅에서는 실제 큐비트 수와 알고리즘의 런타임 간에 장단점이 있습니다. 알고리즘의 런타임을 줄이기 위해 가능한 한 많은 실제 큐비트를 할당하는 것을 고려할 수 있습니다. 그러나 물리적 큐비트의 수는 양자 하드웨어에서 사용할 수 있는 물리적 큐비트의 수로 제한됩니다. 런타임과 시스템 규모 간의 장단점 이해는 리소스 예측의 더 중요한 측면 중 하나입니다.
알고리즘의 리소스를 추정할 때 시공간 다이어그램을 사용하여 실제 큐비트 수와 알고리즘의 런타임 간의 절충을 시각화할 수 있습니다.
참고 항목
시공간 다이어그램에서 여러 최적 조합을 보려면 예측 유형을 Pareto 프론티어 예측으로 설정해야 합니다. : 자원 예측 계산 옵션을 사용하여 Q#Visual Studio Code에서 리소스 추정기를 실행하는 경우 파레토 프론티어 예측은 기본적으로 사용하도록 설정됩니다.
시공간 다이어그램을 사용하면 양자 하드웨어의 제약 조건을 충족하는 {큐비트 수, 런타임} 쌍의 최적의 조합을 찾을 수 있습니다. 다이어그램은 각 {큐비트 수, 런타임} 쌍에 대한 알고리즘의 실제 큐비트 수와 런타임을 보여 줍니다.
Jupyter Notebook에서 시공간 다이어그램을 실행하려면 패키지의 EstimatesOverview
위젯을 qsharp-widgets
사용할 수 있습니다.
import qsharp
from qsharp_widgets import EstimatesOverview
EstimatesOverview(result, colors=["#1f77b4", "#ff7f0e"], runNames=["e4 Surface Code", "e6 Floquet Code"])
팁
예측 세부 정보를 보려면 다이어그램의 각 지점을 마우스로 가리킬 수 있습니다.
시공간 다이어그램은 동일한 알고리즘에 대한 여러 매개 변수 구성을 target 비교할 때 특히 유용합니다.
참고 항목
리소스 예측 도구로 작업하는 동안 문제가 발생하는 경우 문제 해결 페이지를 확인하거나 문의하세요AzureQuantumInfo@microsoft.com.