The PennyLane plugin should have an Boolean option print_instructions (other names can also be proposed) with a default False value. This option must forwarded to the C++ device constructor.
In the runtime plugin, the QuantumDevice should be able to print out the following instructions when the option is set to true:
Qubits:
AllocateQubit/AllocateQubits
ReleaseQubit/ReleaseAllQubits
Gates:
NamedOperation
MatrixOperation
Measure
Measurement process:
Expval
Var
State
Probs/PartialProbs
Sample/PartialSample
Counts/PartialCounts
The format should be kept as simple as possible while providing the necessary information (numerical parameters, wires, control wires, control values, adjoint), for example:
Observables should be printed as part of the measurement process, not upon their construction, for example:
Expval(Y(0))
Var(Z(0) x (Y(1))
Sample(wires=[0, 1, 2], shots=100)
Installation help
Complete instructions to install Catalyst from source can be found here. Note that due to the size of the llvm-project it can take a while (~3 hrs on a personal laptop) to compile.
Context
The PennyLane plugin should have an Boolean option
print_instructions
(other names can also be proposed) with a defaultFalse
value. This option must forwarded to the C++ device constructor.In the runtime plugin, the
QuantumDevice
should be able to print out the following instructions when the option is set to true:AllocateQubit
/AllocateQubits
ReleaseQubit
/ReleaseAllQubits
NamedOperation
MatrixOperation
Measure
Expval
Var
State
Probs
/PartialProbs
Sample
/PartialSample
Counts
/PartialCounts
The format should be kept as simple as possible while providing the necessary information (numerical parameters, wires, control wires, control values, adjoint), for example:
Observables should be printed as part of the measurement process, not upon their construction, for example:
Installation help
Complete instructions to install Catalyst from source can be found here. Note that due to the size of the llvm-project it can take a while (~3 hrs on a personal laptop) to compile.