PulseCompiler

class PulseCompiler(gateset, backend)

Compile native circuits to pulses for a specific gate set, using a bound pulse backend.

Binds a GateSet to an already-constructed pulse backend (e.g. SimphonyBackend(model)) and lowers native circuits into that backend’s pulse representation.

Parameters:
  • gateset (GateSet) – Native gate set whose operations are lowered to pulses.

  • backend (Any) – Pulse backend to compile with, already bound to its device model. Must be registered (via register_pulse_backend()) for gateset’s type, and its n_qubits must match gateset.n_qubits.

Raises:
  • ValidationError – If gateset is not a GateSet, or backend’s qubit count does not match gateset’s.

  • BackendError – If backend’s type is not registered for gateset’s type.

Attributes

backend

Pulse backend bound to this compiler.

gateset

Native gate set bound to this compiler.

Methods

benchmark_circuit(circuit, **kwargs)

Benchmark the pulse implementation of a whole native circuit.

benchmark_gate(gate, **kwargs)

Benchmark the pulse implementation of a single native gate.

benchmark_gateset(**kwargs)

Benchmark the pulse implementation of every native gate.

compile(circuit)

Compile a native circuit into a pulse sequence on the bound backend.