Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add performance schema for Aquila #167

Merged
merged 9 commits into from
Jan 29, 2024
1 change: 1 addition & 0 deletions doc/conf.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
"""Sphinx configuration."""

import datetime

import pkg_resources
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@


class BlackbirdDeviceActionProperties(DeviceActionProperties):

"""
Defines the schema for properties for the actions that can be
supported by devices that accept Blackbird IR.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@


class ContinuousVariableQpuParadigmProperties(BraketSchemaBase):

"""
This class defines the properties that are specific to continuous variable (CV) devices

Expand Down
1 change: 0 additions & 1 deletion src/braket/device_schema/device_connectivity.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@


class DeviceConnectivity(BaseModel):

"""
This schema defines the common properties that need to be existent if a connection is defined.

Expand Down
1 change: 0 additions & 1 deletion src/braket/device_schema/device_execution_window.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ class ExecutionDay(str, Enum):


class DeviceExecutionWindow(BaseModel):

"""
This class defines when a device can execute a given task.

Expand Down
1 change: 0 additions & 1 deletion src/braket/device_schema/device_service_properties_v1.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@


class DeviceCost(BaseModel):

"""
This class provides the details on the cost of a device.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@


class DwaveDeviceCapabilities(DeviceCapabilities, BraketSchemaBase):

"""
These are the capabilities specific to D-Wave device

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@


class DwaveProviderProperties(BraketSchemaBase):

"""

This defines the properties specific to D-Wave device
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@


class GateModelQpuParadigmProperties(BraketSchemaBase):

"""
This class defines the properties that are specific to gate model devices

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ def _dumps_with_provider(payload: dict, **kwargs):


class IonqDeviceCapabilities(BraketSchemaBase, DeviceCapabilities):

"""
This defines the capabilities of an IonQ device.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@


class JaqcdDeviceActionProperties(DeviceActionProperties):

"""
Defines the schema for properties for the actions that can be supported by JAQCD devices.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@


class OpenQASMDeviceActionProperties(DeviceActionProperties):

"""
Defines the schema for properties for the actions that can be supported by OpenQASM devices.

Expand Down
214 changes: 210 additions & 4 deletions src/braket/device_schema/quera/quera_ahs_paradigm_properties_v1.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
# language governing permissions and limitations under the License.

from decimal import Decimal
from typing import Tuple
from typing import Annotated, List, Tuple

from pydantic import BaseModel, Field

Expand Down Expand Up @@ -124,21 +124,180 @@ class PerformanceLattice(BaseModel):
"""
Uncertainties of atomic site arrangements
Attributes:
positionErrorAbs (Decimal): Error between target and actual site
position (measured in meters)
positionErrorAbs (Decimal): Total error of the atom position during
coherent evolution relative to the lab frame, and combines lattice
site position and thermal atom position errors. (measured in meters)
sitePositionError (Decimal): Systematic, pattern-dependent error
between specified and actual lattice site positions. (measured in meters)
atomPositionError (Decimal): Random error in the atom position during
coherent evolution as a result of thermal motion. (measured in meters)
fillingErrorTypical (Annotated[Decimal, Field(ge=0, le=1)]): Typical probability of failing
to occupy a site specified by user as 'filled'. These probabilities are dependent on
the pattern and site position within the pattern. Normalized to 1.
fillingErrorWorst (Annotated[Decimal, Field(ge=0, le=1)]): Worst-case probability of
failing to occupy a site specified by user as 'filled'. Upper bound that includes the
pattern-dependence and site position dependence. Normalized to 1.
vacancyErrorTypical (Annotated[Decimal, Field(ge=0, le=1)]): Typical probability of
erroneously filling a site specified by user as 'unfilled'. These probabilities can be
dependent on the pattern and site position within the pattern, and can change slightly
with time. Normalized to 1.
vacancyErrorWorst (Annotated[Decimal, Field(ge=0, le=1)]): Worst-case probability of
erroneously filling a site specified by user as 'unfilled'. Upper bound that includes
the pattern-dependence, site position dependence and time-variation of this
probability. Normalized to 1.
atomLossProbabilityTypical (Annotated[Decimal, Field(ge=0, le=1)]): Typical probability of
atom loss from a filled site between the first and second image. These probabilities
can be dependent on the pattern and site position within the pattern, and can change
slightly with time. Normalized to 1.
atomLossProbabilityWorst (Annotated[Decimal, Field(ge=0, le=1)]): Worst-case probability of
atom loss from a filled site between the first and second image. Upper bound that
includes the pattern-dependence, site position dependence and time-variation of this
probability. Normalized to 1.
atomCaptureProbabilityTypical (Annotated[Decimal, Field(ge=0, le=1)]): Typical probability
of atom capture into an empty site between the first and second image. These
probabilities can be dependent on the pattern and site position within the pattern, and
can change slightly with time. Normalized to 1.
atomCaptureProbabilityWorst (Annotated[Decimal, Field(ge=0, le=1)]): Worst-case probability
of atom capture from a filled site between the first and second image. Upper bound that
includes the pattern-dependence, site position dependence and time-variation of this
probability. Normalized to 1.
atomDetectionErrorFalsePositiveTypical (Annotated[Decimal, Field(ge=0, le=1)]): Typical
probability of a false-positive atom detection error. These probabilities can be
dependent on the pattern and site position within the pattern, and can change slightly
with time. Normalized to 1.
guomanmin marked this conversation as resolved.
Show resolved Hide resolved
atomDetectionErrorFalsePositiveWorst (Annotated[Decimal, Field(ge=0, le=1)]): Worst-case
probability of a false-positive atom detection error. Upper bound that includes the
pattern-dependence, site position dependence and time-variation of this probability.
Normalized to 1.
atomDetectionErrorFalseNegativeTypical (Annotated[Decimal, Field(ge=0, le=1)]): Typical
probability of a false-negative atom detection error. These probabilities can be
dependent on the pattern and site position within the pattern, and can change slightly
with time. Normalized to 1.
atomDetectionErrorFalseNegativeWorst (Annotated[Decimal, Field(ge=0, le=1)]): Worst-case
probability of a false-negative atom detection error. Upper bound that includes the
pattern-dependence, site position dependence and time-variation of this probability.
Normalized to 1.
"""

positionErrorAbs: Decimal
sitePositionError: Decimal
atomPositionError: Decimal
fillingErrorTypical: Annotated[Decimal, Field(ge=0, le=1)]
fillingErrorWorst: Annotated[Decimal, Field(ge=0, le=1)]
vacancyErrorTypical: Annotated[Decimal, Field(ge=0, le=1)]
vacancyErrorWorst: Annotated[Decimal, Field(ge=0, le=1)]
atomLossProbabilityTypical: Annotated[Decimal, Field(ge=0, le=1)]
atomLossProbabilityWorst: Annotated[Decimal, Field(ge=0, le=1)]
atomCaptureProbabilityTypical: Annotated[Decimal, Field(ge=0, le=1)]
atomCaptureProbabilityWorst: Annotated[Decimal, Field(ge=0, le=1)]
atomDetectionErrorFalsePositiveTypical: Annotated[Decimal, Field(ge=0, le=1)]
atomDetectionErrorFalsePositiveWorst: Annotated[Decimal, Field(ge=0, le=1)]
atomDetectionErrorFalseNegativeTypical: Annotated[Decimal, Field(ge=0, le=1)]
atomDetectionErrorFalseNegativeWorst: Annotated[Decimal, Field(ge=0, le=1)]


class RabiCorrection(BaseModel):
"""
Correction factors for calculating the fraction of the expected Rabi oscillation frequency as a
function of ramp time, in the absence of any local detuning pattern.
Attributes:
rampTime (Decimal): The ramp time. (measured in s)
rabiCorrection (Annotated[Decimal, Field(ge=0.0, le=1.0)]): The fraction of the expected
rabi oscillation frequency. Normalized to the range [0.0, 1.0].
"""

rampTime: Decimal
rabiCorrection: Annotated[Decimal, Field(ge=0.0, le=1.0)]


class PerformanceRydbergGlobal(BaseModel):
"""
Parameters determining the limitations of the global driving field
Attributes:
rabiFrequencyErrorRel (Decimal): random error in the Rabi frequency, relative (unitless)
rabiFrequencyErrorRel (Decimal): Total error in the Rabi frequency due to inhomogeneity and
variations in time, relative to the specified value. (unitless)
rabiFrequencyGlobalErrorRel (Decimal): RMS Rabi frequency variation in time as a relative
value. (unitless)
rabiFrequencyInhomogeneityRel (Decimal): RMS Rabi frequency inhomogeneity over the user
region, relative to the specified value. (unitless)
groundDetectionError (Annotated[Decimal, Field(ge=0, le=1)]): Probability of mis-detecting
a ground-state atom as a Rydberg-state atom. (unitless)
rydbergDetectionError (Annotated[Decimal, Field(ge=0, le=1)]): Probability of mis-detecting
a Rydberg-state atom as a ground-state atom. (unitless)
groundPrepError (Annotated[Decimal, Field(ge=0, le=1)]): Probability of failing to
initialize an atom in the ground state prior to user-programmed coherent evolution, in
the absence of any local detuning pattern. Normalized to 1.
rydbergPrepErrorBest (Annotated[Decimal, Field(ge=0, le=1)]): Probability of failing to
initialize an atom in the Rydberg state by an optimal (for that site) user specified
pi-pulse from the ground state at maximum Rabi frequency, in the absence of any local
detuning pattern. Normalized to 1.
rydbergPrepErrorWorst (Annotated[Decimal, Field(ge=0, le=1)]): Worst-case probability of
failing to initialize an atom in the Rydberg state by a user specified pi-pulse from
the ground state at maximum Rabi frequency, optimized for a different site, in the
absence of any local detuning pattern. Normalized to 1.
T1Single (Decimal): Typical lifetime of the Rydberg state for a single non-interacting
qubit in the absence of drive, as measured by a pi-wait-pi protocol. (measured in s)
T1Ensemble (Decimal): Lifetime of the Rydberg state for an ensemble of non-interacting
qubits distributed over the user region, in the absence of drive, as measured by a
pi-wait-pi protocol. (measured in s)
T2StarSingle (Decimal): Typical dephasing time of a single non-interacting qubit in the
absence of drive, as measured by a Ramsey protocol. Includes coherent and incoherent
processes. (measured in s)
T2StarEnsemble (Decimal): Dephasing time of an ensemble of non-interacting qubits
distributed over the user region, in the absence of drive, as measured by a Ramsey
protocol. Includes coherent and incoherent processes. (measured in s)
T2EchoSingle (Decimal): Typical dephasing time of a single non-interacting qubit in the
absence of drive, as measured by a spin-echo dynamical decoupling protocol. This
measurement isolates the effects of incoherent processes. (measured in s)
guomanmin marked this conversation as resolved.
Show resolved Hide resolved
T2EchoEnsemble (Decimal): Dephasing time of an ensemble of non-interacting qubits
distributed over the user region, in the absence of drive, as measured by a spin-echo
dynamical decoupling protocol. This measurement isolates the effects of incoherent
processes. (measured in s)
T2RabiSingle (Decimal): Typical decoherence time of a single driven qubit, as measured by a
Rabi oscillation protocol with variable pulse duration a maximum Rabi frequency.
Includes coherent and incoherent processes. (measured in s)
T2RabiEnsemble (Decimal): Decoherence time of an ensemble of non-interacting driven qubits
distributed over the user region, as measured by a Rabi oscillation protocol with
variable pulse duration at maximum Rabi frequency. Includes coherent and incoherent
processes. (measured in s)
T2BlockadedRabiSingle (Decimal): Typical decoherence time of a single pair of driven
blockaded qubits, as measured by a Rabi oscillation protocol with variable pulse
duration a maximum Rabi frequency. Includes coherent and incoherent processes.
(measured in s)
T2BlockadedRabiEnsemble (Decimal): Decoherence time of an ensemble of pairs of driven
blockaded qubits distributed over the user region (different pairs do not interact with
each other), as measured by a Rabi oscillation protocol with variable pulse duration at
maximum Rabi frequency. Includes coherent and incoherent processes. (measured in s)
detuningError (Decimal): Systematic error from specified value of the global detuning
averaged over the user region. (measured in rad/s)
detuningInhomogeneity (Decimal): RMS inhomogeneity of the detuning over the user region.
(measured in rad/s)
rabiAmplitudeRampCorrection (List[RabiCorrection]): dynamic correction curve of effective
single-qubit on-resonant Rabi oscillation frequency driven by a triangular amplitude
waveform, relative to the specified value.
"""

rabiFrequencyErrorRel: Decimal
rabiFrequencyGlobalErrorRel: Decimal
rabiFrequencyInhomogeneityRel: Decimal
groundDetectionError: Annotated[Decimal, Field(ge=0, le=1)]
rydbergDetectionError: Annotated[Decimal, Field(ge=0, le=1)]
groundPrepError: Annotated[Decimal, Field(ge=0, le=1)]
rydbergPrepErrorBest: Annotated[Decimal, Field(ge=0, le=1)]
rydbergPrepErrorWorst: Annotated[Decimal, Field(ge=0, le=1)]
T1Single: Decimal
T1Ensemble: Decimal
T2StarSingle: Decimal
T2StarEnsemble: Decimal
T2EchoSingle: Decimal
T2EchoEnsemble: Decimal
T2RabiSingle: Decimal
T2RabiEnsemble: Decimal
T2BlockadedRabiSingle: Decimal
T2BlockadedRabiEnsemble: Decimal
detuningError: Decimal
detuningInhomogeneity: Decimal
rabiAmplitudeRampCorrection: List[RabiCorrection]
guomanmin marked this conversation as resolved.
Show resolved Hide resolved


class PerformanceRydberg(BaseModel):
Expand Down Expand Up @@ -213,10 +372,57 @@ class QueraAhsParadigmProperties(BraketSchemaBase):
... "performance": {
... "lattice":{
... "positionErrorAbs": 0.025e-6,
... "sitePositionError": 0.025e-6,
... "atomPositionError": 0.025e-6,
... "fillingErrorTypical": 0.005,
... "fillingErrorWorst": 0.01,
... "vacancyErrorTypical": 0.005,
... "vacancyErrorWorst": 0.005,
... "atomLossProbabilityTypical": 0.01,
... "atomLossProbabilityWorst": 0.01,
... "atomCaptureProbabilityTypical": 0.01,
... "atomCaptureProbabilityWorst": 0.01,
... "atomDetectionErrorFalsePositiveTypical": 0.01,
... "atomDetectionErrorFalsePositiveWorst": 0.01,
... "atomDetectionErrorFalseNegativeTypical": 0.01,
... "atomDetectionErrorFalseNegativeWorst": 0.01,
... },
... "performanceRydberg":{
... "performanceRydbergGlobal":{
... "rabiFrequencyErrorRel:": 0.01,
... "rabiFrequencyGlobalErrorRel": 0.01,
... "rabiFrequencyInhomogeneityRel": 0.01,
... "groundDetectionError": 0.01,
... "rydbergDetectionError":0.1,
... "groundPrepError": 0.01,
... "rydbergPrepErrorBest": 0.05,
... "rydbergPrepErrorWorst": 0.05,
... "T1Single": 100e-6,
... "T1Ensemble": 100e-6,
... "T2StarSingle": 5e-6,
... "T2StarEnsemble": 5e-6,
... "T2EchoSingle": 5e-6,
... "T2EchoEnsemble": 5e-6,
... "T2RabiSingle": 5e-6,
... "T2RabiEnsemble": 5e-6,
... "T2BlockadedRabiSingle":5e-6,
... "T2BlockadedRabiEnsemble": 5e-6,
... "detuningError": 1e6,
... "detuningInhomogeneity": 1e6,
... "rabiAmplitudeRampCorrection":[
... {
... "rampTime":50e-9,
... "rabiCorrection": 0.92
... },
... {
... "rampTime": 75e-9,
... "rabiCorrection": 0.97
... },
... {
... "rampTime": 100e-9,
... "rabiCorrection": 1.00
... }
... ]
... },
... },
... },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@


class GateModelSimulatorParadigmProperties(BraketSchemaBase):

"""
This class defines the properties that are specific to simulator device

Expand Down
Loading
Loading