Skip to content

User-configurable basis-target property for BasisConversion/Decomposition #3601

@lmondada

Description

@lmondada

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions