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