-
Notifications
You must be signed in to change notification settings - Fork 305
Description
Issue #3581 introduces automatic selection of rewrite patterns given a basis-target property.
The next thing to establish is how this feature should be exposed to the user.
Option 1: exposed in YAML
The basis-target property could be specified either through a new dedicated property, or as part of the existing jit-mid-level-pipeline.
In the latter case, the basis target would be specified by appending basis-conversion{basis-target="x(1), rx, rz"} or similar to the end of the mid-level pipeline. The former would be syntactic sugar that simplified the syntax to basis-target: x(1), rx, rz
Problem: the YAML files are copied during the installation of cudaq to some global path that might not be modifiable by the user. This would make it impossible to change.
Option 2: command line arguments to nvq++ (or cudaq-opt or new custom tool)
Depends on what gets called when and what can overwrite which options (I don't know). To be explored. It's worth noting that exposure in cudaq-opt will come for free, as the basis can be specified as arguments to the basis-conversion pass (see above).
Option 3: exposed in Python (somehow)
I suspect this is what quantum researchers looking to benchmark and compare with qiskit etc. will expect. Not sure if this is something we want, and how feasible this is. To be explored.