qat.experimental.pipelines.compile module
Experimental Qblox compile pipeline.
Wires together the experimental frontend, middleend, and backend for the experimental Qblox
target, using a
CanonicalSystemData
instance rather than the legacy QuantumHardwareModel/PhysicalHardwareModel used by
production pipelines such as
QbloxCompilePipeline1.
There is no BaseModelLoader that produces
CanonicalSystemData (it can be materialised from a supported source payload through
materialise()), so this pipeline
cannot be wired up through a qatconfig HARDWARE/hardware_loader entry. Instantiate
it directly instead:
from qat.experimental.pipelines.compile import (
ExperimentalQbloxCompilePipeline,
ExperimentalQbloxCompilePipelineConfig,
)
pipeline = ExperimentalQbloxCompilePipeline(
config=ExperimentalQbloxCompilePipelineConfig(),
model=canonical_system_data,
)
The program passed to compile() must be a QuantumInstructionBuilder (PuRR IR)
because the experimental frontend currently exposes only the PuRR importer.
The inherited target_data argument carries the Qblox limits used by the backend and
lowering pipeline.
- class ExperimentalQbloxCompilePipeline(config, model=None, loader=None, target_data=None, engine=None)
Bases:
UpdateablePipelineCompiles programs for the experimental Qblox target using the frontend, middleend, and backend stack.
This pipeline is for compilation purposes only and does not execute programs.
- Parameters:
config¶ (
PipelineConfig) – The pipeline configuration with the name of the pipeline, and any additional parameters that can be configured in the pipeline.model¶ (
QuantumHardwareModel|PhysicalHardwareModel|None) – The hardware model to feed into the pipeline. Defaults to None.loader¶ (
BaseModelLoader|None) – The hardware loader used to load the hardware model which can be used to later refresh the hardware model. Defaults to None.target_data¶ (
TargetData|None) – The data concerning the target device, defaults to Noneengine¶ (
NativeEngine|None) – The engine to use for the pipeline, defaults to None.
- Raises:
ValueError – If neither model nor loader is provided.
- class ExperimentalQbloxCompilePipelineConfig(**data)
Bases:
PipelineConfigConfiguration for
ExperimentalQbloxCompilePipeline.- Parameters:
name¶ – The name of the pipeline, defaults to “experimental_qblox”.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
name:
str