Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dowiedz się, jak interpretować i pobierać parametry wyjściowe oraz diagramy narzędzia do szacowania zasobów. W tym artykule wyjaśniono, jak programowo uzyskać dostęp do wyników narzędzia do szacowania zasobów w notesie Jupyter w programie Visual Studio Code (VS Code).
Wymagania wstępne
Środowisko Pythona z zainstalowanymi Pythonem i Pipem.
Najnowsza wersja programu VS Code lub otwórz program VS Code w sieci Web.
Program VS Code z zainstalowanymi rozszerzeniami Azure Quantum Development Kit, Python i Jupyter .
Najnowsza
qdkbiblioteka Pythona z dodatkiemjupyter.python -m pip install --upgrade qdk[jupyter]
Uwaga
Jeśli uruchomisz narzędzie do szacowania zasobów w programie VS Code z palety poleceń, następujące polecenia nie mają zastosowania. Aby uzyskać więcej informacji, zobacz Różne sposoby uruchamiania narzędzia do szacowania zasobów.
Parametry wyjściowe
Dane wyjściowe z narzędzia do szacowania zasobów to raport wydrukowany w konsoli programu i umożliwiający dostęp programowy. Na przykład poniższy fragment kodu wyświetla wartości wszystkich parametrów narzędzia do szacowania zasobów:
result['jobParams']
Poniższa tabela zawiera typ danych i krótki opis każdego parametru wyjściowego.
| Parametr wyjściowy najwyższego poziomu | Typ danych | opis |
|---|---|---|
status |
ciąg | Stan zadania to zawsze Succeeded. |
jobParams |
słownik | Parametry target zadania, które są przekazywane jako wejście. |
physicalCounts |
słownik | Szacowany zasób fizyczny. Aby uzyskać więcej informacji, zobacz Fizyczne liczenie. |
physicalCountsFormatted |
słownik | Szacowane zasoby fizyczne sformatowane do wyświetlania w danych raportu. Aby uzyskać więcej informacji, zobacz Liczba fizyczne sformatowane. |
logicalQubit |
słownik | Właściwości kubitu logicznego. Aby uzyskać więcej informacji, zobacz Logiczny kubit. |
tfactory |
słownik | Właściwości fabryki T. |
logicalCounts |
słownik | Wstępne szacunki zasobów logicznych przed rozmieszczeniem. Aby uzyskać więcej informacji, zobacz Liczby logiczne. |
reportData |
słownik | Dane generowania raportu szacowania zasobów. |
Inwentaryzacja fizyczna
Słownik physicalCounts zawiera następujące wpisy:
| Parametr wyjściowy | Typ danych | opis |
|---|---|---|
physicalQubits |
Liczba | Całkowita liczba kubitów fizycznych. |
runtime |
Liczba | Całkowity czas wykonania algorytmu w nanosekundach. |
rqops |
Liczba | Liczba niezawodnych operacji kwantowych na sekundę (QOPS). |
breakdown |
słownik | Podział oszacowań. Aby uzyskać więcej informacji, zobacz szczegóły inwentaryzacji fizycznej. |
Podział fizycznych ilości
Słownik breakdown dla physicalCounts zawiera następujące wpisy:
| Parametr wyjściowy | Typ danych | opis |
|---|---|---|
algorithmicLogicalQubits |
Liczba | Kubity logiczne wymagane do uruchomienia algorytmu i nie obejmują zasobów dla fabryk T. |
algorithmicLogicalDepth |
Liczba | Cykle logiczne wymagane do uruchomienia algorytmu i nie obejmują zasobów dla fabryk T. |
logicalDepth |
Liczba | Ewentualnie skorygowana liczba cykli obliczanych za każdym razem, gdy czas wykonywania fabryki T jest szybszy niż wykonywanie algorytmu. |
numTstates |
Liczba | Liczba stanów T używanych przez algorytm. |
clockFrequency |
Liczba | Liczba cykli logicznych na sekundę. |
numTfactories |
Liczba | Liczba fabryk T (zakłada jednolity projekt fabryki T). |
numTfactoryRuns |
Liczba | Liczba częstotliwości uruchamiania wszystkich równoległych fabryk T. |
physicalQubitsForTfactories |
Liczba | Liczba kubitów fizycznych dla wszystkich fabryk typu T. |
physicalQubitsForAlgorithm |
Liczba | Liczba kubitów fizycznych dla układu algorytmu. |
requiredLogicalQubitErrorRate |
Liczba | Wymagana liczba błędów logicznych. |
requiredLogicalTstateErrorRate |
Liczba | Wymagana liczba błędów stanu logicznego T. |
numTsPerRotation |
Liczba | Liczba bram T na obrót. |
cliffordErrorRate |
Liczba | Współczynnik błędów Cliffordu oparty na parametrach kubitu. |
Liczba fizyczna sformatowana
Słownik physicalCountsFormatted zawiera następujące wpisy:
| Parametr wyjściowy | Typ danych | opis |
|---|---|---|
runtime |
ciąg | Całkowity czas wykonywania w formacie przyjaznym dla użytkownika. |
rqops |
ciąg | Liczba niezawodnych operacji kwantowych na sekundę (QOPS) ujętych z przedrostkiem metrycznym. |
physicalQubits |
ciąg | Całkowita liczba kubitów fizycznych z sufiksem metryki. |
algorithmicLogicalQubits |
ciąg | Algorytmiczne kubity logiczne z sufiksem metrycznym. |
algorithmicLogicalDepth |
ciąg | Algorytmiczna głębokość logiczna z sufiksem metrycznym. |
logicalDepth |
ciąg | Możliwie skorygowana algorytmiczna głębokość logiczna z sufiksem metrycznym. |
numTstates |
ciąg | Liczba stanów T z sufiksem metryki. |
numTfactories |
ciąg | Liczba fabrycznych kopii T z sufiksem metrycznym. |
numTfactoryRuns |
ciąg | Liczba uruchomień fabryki T z sufiksem jednostki miary. |
physicalQubitsForAlgorithm |
ciąg | Liczba fizycznych kubitów algorytmu z sufiksem metryki. |
physicalQubitsForTfactories |
ciąg | Liczba kubitów fizycznych dla fabryk T z metrycznym sufiksem. |
physicalQubitsForTfactoriesPercentage |
ciąg | Liczba kubitów fizycznych dla wszystkich fabryk T w procentach do sumy. |
requiredLogicalQubitErrorRate |
ciąg | Skrócony wymagany logiczny współczynnik błędów kubitu. |
requiredLogicalTstateErrorRate |
ciąg | Skrócony wymagany współczynnik błędów stanu T. |
physicalQubitsPerLogicalQubit |
ciąg | Liczba kubitów fizycznych na kubit logiczny z metrycznym sufiksem. |
logicalCycleTime |
ciąg | Logiczny czas cyklu logicznego kubitu jako przyjazny dla człowieka ciąg. |
clockFrequency |
ciąg | Liczba cykli logicznych na sekundę jako ciąg znaków przyjazny dla użytkownika. |
logicalErrorRate |
ciąg | Skrócony logiczny współczynnik błędów. |
tfactoryPhysicalQubits |
ciąg | Liczba kubitów fizycznych w fabryce T z sufiksem metrycznym (lub komunikatem, że nie ma fabryki T). |
tfactoryRuntime |
ciąg | Czas działania pojedynczej fabryki T jako ciąg znaków czytelny dla użytkownika (lub wiadomość, że nie ma fabryki T). |
numInputTstates |
ciąg | Liczba stanów wejściowych T lub informacja, że nie ma fabryki T. |
numUnitsPerRound |
ciąg | Liczba jednostek na rundę destylacji rozdzielona przecinkami w ciągu (lub komunikat, że nie ma fabryki T). |
unitNamePerRound |
ciąg | Nazwy jednostek każdej rundy destylacji, rozdzielone przecinkami w ciągu (lub informacja, że nie ma fabryki T). |
codeDistancePerRound |
ciąg | Odległość kodu na rundę destylacji, przecinek oddzielony ciągiem (lub komunikatem, że nie ma fabryki T). |
physicalQubitsPerRound |
ciąg | Liczba kubitów fizycznych na rundę destylacji, rozdzielona przecinkami w formie ciągu znaków (lub wiadomość, że nie ma fabryki T). |
tfactoryRuntimePerRound |
ciąg | Czas trwania każdej rundy destylacji, wyświetlany jako ciągi przyjazne dla człowieka rozdzielone przecinkami (lub komunikat, że nie ma fabryki T). |
tstateLogicalErrorRate |
ciąg | Skrócony współczynnik błędów stanu logicznego T (lub komunikat, że nie ma fabryki T). |
logicalCountsNumQubits |
ciąg | Liczba kubitów (układ wstępny) z metrycznym sufiksem. |
logicalCountsTCount |
ciąg | Liczba bram T (przed rozmieszczeniem) z sufiksem jednostki miary. |
logicalCountsRotationCount |
ciąg | Liczba bram rotacji (układ wstępny) z sufiksem metryki. |
logicalCountsRotationDepth |
ciąg | Głębokość obrotu (układ wstępny) z sufiksem metryki. |
logicalCountsCczCount |
ciąg | Liczba bram CCZ (w układzie wstępnym) z dołączonym oznaczeniem metryki. |
logicalCountsCcixCount |
ciąg | Liczba bram CCiX (przed rozmieszczeniem) z przedrostkiem metrycznym. |
logicalCountsMeasurementCount |
ciąg | Liczba pomiarów pojedynczego kubitu (układ wstępny) z sufiksem metryki. |
errorBudget |
ciąg | Skrócony całkowity budżet błędów. |
errorBudgetLogical |
ciąg | Skrócony budżet błędów dla błędu logicznego. |
errorBudgetTstates |
ciąg | Obcięty budżet błędów dla wadliwej destylacji stanu T. |
errorBudgetRotations |
ciąg | Obcięty budżet błędów dla wadliwej syntezy rotacji. |
numTsPerRotation |
ciąg | Sformatowana liczba Ts na obrót (może być wartością pustą). |
Kubit logiczny
Słownik logicalQubit zawiera następujące wpisy:
| Parametr wyjściowy | Typ danych | opis |
|---|---|---|
codeDistance |
Liczba | Obliczona odległość kodu dla kubitu logicznego. |
physicalQubits |
Liczba | Liczba kubitów fizycznych dla każdego kubitu logicznego. |
logicalCycleTime |
Liczba | Czas wykonywania jednej operacji logicznej. |
logicalErrorRate |
Liczba | Logiczna szybkość błędów kubitu logicznego. |
Liczby logiczne
Słownik logicalCounts zawiera następujące wpisy:
| Parametr wyjściowy | Typ danych | opis |
|---|---|---|
numQubits |
Liczba | Liczba kubitów przed rozmieszczeniem. |
tCount |
Liczba | Liczba bram T przed rozmieszczeniem. |
rotationCount |
Liczba | Wstępna liczba bram obrotu. |
rotationDepth |
Liczba | Głębokość rotacji przed rozmieszczeniem. |
cczCount |
Liczba | Wstępna liczba bram CCZ. |
ccixCount |
Liczba | Wstępna liczba bram CCiX. |
measurementCount |
Liczba | Wstępnie układ liczby pomiarów pojedynczego kubitu. |
Napiwek
Jeśli chcesz użyć wstępnie obliczonego zestawu liczb logicznych dla zadania szacowania zasobów, możesz użyć LogicalCounts operacji Python, aby przekazać znane oszacowania do Resource Estimator. Aby uzyskać więcej informacji, zobacz How to use known estimates with the Resource Estimator (Jak używać znanych oszacowań za pomocą narzędzia do szacowania zasobów).
Diagram przestrzeni
Ogólne szacowanie zasobów fizycznych składa się z całkowitej liczby kubitów fizycznych używanych zarówno dla algorytmu, jak i kopii fabrycznych T. Rozkład między nimi można sprawdzić przy użyciu diagramu przestrzeni.
Diagram przestrzeni pokazuje proporcję fizycznych kubitów używanych dla algorytmu i fabryk T. Należy pamiętać, że liczba kopii fabrycznych T przyczynia się do liczby fizycznych kubitów dla fabryk T.
W notesie Jupyter możesz uzyskać dostęp do diagramu przestrzeni przy użyciu widżetu SpaceChart z pakietu widgets.
from qdk.widgets import SpaceChart
SpaceChart(result)
Diagram kołowy przedstawiający rozkład całkowitych kubitów fizycznych między kubitami algorytmu a kubitami instancji T. Istnieje tabela z podziałem liczby kopii instancji T i liczby kubitów fizycznych na instancję T.
Podczas uruchamiania wielu konfiguracji parametrów z szacowaniem granicy Pareto, można wykreślić diagram przestrzeni dla określonego rozwiązania. Na przykład poniższy kod pokazuje, jak wykreślić diagram przestrzeni dla pierwszej konfiguracji parametrów i trzeciego najkrótszego czasu wykonania.
SpaceChart(result[0], 2) # First (estimate index=0) run and third (point index=2) shortest runtime
Diagram czasu kosmicznego
W obliczeniach kwantowych istnieje kompromis między liczbą fizycznych kubitów a środowiskiem uruchomieniowym algorytmu. Możesz rozważyć alokację jak największej liczby kubitów fizycznych, aby zmniejszyć środowisko uruchomieniowe algorytmu. Jednak liczba kubitów fizycznych jest ograniczona przez liczbę kubitów fizycznych dostępnych na sprzęcie kwantowym. Zrozumienie kompromisu między środowiskiem uruchomieniowym a skalowaniem systemu jest jednym z ważniejszych aspektów szacowania zasobów.
Podczas szacowania zasobów algorytmu można użyć diagramu czasowego do wizualizacji kompromisów między liczbą kubitów fizycznych a środowiskiem uruchomieniowym algorytmu.
Uwaga
Aby wyświetlić wiele optymalnych kombinacji na diagramie czasoprzestrzennym, należy ustawić typ szacowania na szacowanie frontu Pareto. Jeśli uruchomisz narzędzie do szacowania zasobów w programie Visual Studio Code za pomocą zestawu QDK: Oblicz szacowanie zasobów , szacowanie granic Pareto jest domyślnie włączone.
Diagram czasu kosmicznego umożliwia znalezienie optymalnej kombinacji {liczby kubitów, środowiska uruchomieniowego} par, które spełniają ograniczenia sprzętu kwantowego. Diagram przedstawia liczbę kubitów fizycznych i czas wykonania algorytmu dla każdej pary {liczba kubitów, czas wykonania}.
Aby uruchomić diagram czasoprzestrzenny w notesie Jupyter, użyj widżetu EstimatesOverview z pakietu widgets.
from qdk.widgets import EstimatesOverview
EstimatesOverview(result, colors=["#1f77b4", "#ff7f0e"], runNames=["e4 Surface Code", "e6 Floquet Code"])
Zrzut ekranu przedstawiający diagram czasu kubitu w Estymatorze zasobów.
Napiwek
Aby wyświetlić szczegóły szacowania, możesz umieścić wskaźnik myszy na każdym punkcie na diagramie.
Diagram czasoprzestrzenny jest szczególnie przydatny podczas porównywania wielu konfiguracji parametrów target dla tego samego algorytmu.
Zrzut ekranu przedstawiający diagram czasoprzestrzenny i tabelę wyników podczas uruchamiania wielu konfiguracji parametrów w narzędziu do szacowania zasobów.
Uwaga
Jeśli występują problemy podczas pracy z narzędziem do szacowania zasobów, zobacz stronę Rozwiązywanie problemów lub skontaktuj się z .AzureQuantumInfo@microsoft.com