qat.pipelines.base module
- class AbstractPipeline
Bases:
ABC
An abstraction of pipelines used in QAT to compile and execute quantum programs.
A pipeline is composed of many different components used to specify how a quantum program is compiled and executed. On the compilation front, there is the:
Model: Contains calibration information surrounding the QPU.
TargetData: Contains information about the target device.
Frontend: Compiles a high-level language-specific, but target-agnostic, input (e.g., QASM, QIR, …) to QAT’s intermediate representation (IR), QatIR.
Middleend: Takes the QatIR and performs a sequences of passes that validate and optimise the IR, and prepare it for codegen.
Backend: Handles code generation to allow the program to be executed on the target.
On the execution front, there is the:
Engine: Communicates the compiled program with the target devices, and returns the results.
Runtime: Manages the execution of the program, including the engine and the post- processing of the results.
- abstract property backend: BaseBackend
- abstract property engine: NativeEngine
- abstract property frontend: BaseFrontend
- abstract property middleend: BaseMiddleend
- abstract property model: QuantumHardwareModel
- abstract property name: str
- abstract property runtime: BaseRuntime
- abstract property target_data: TargetData