-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Error when using custom target_device
#288
Comments
Yeah I think only allowing a |
target_backend
target_device
I didn't realize the VF2 custom passes were removed in #256- they shouldn't have been. |
Can you share more on the motivation to add back? Is there a measured benefit we can point to relative to the latest qiskit versions? Or perhaps better posed -- is there a benchmark we should include that demonstrates the impact of the customizations? |
Describe the bug
When attempting to specify an edge-list as the
target_device
argument tocompile
, the code errors withTo Reproduce
Run the following code
Expected behavior
I would expect the above code to run without error.
Additional context
This appears to be a consequence of #256, which removed a custom version of the
qiskit
VF2PostLayout
class. In the custom version, the pass was changed to allow only specifying a coupling map without properties, as the optimization was using the number of multi-qubit gates in the optimization cost function. However, theqiskit
versions uses gate error rates as part of cost function, so if a coupling map is provided, it also needs error properties specified.We could consider restoring the custom version, but that would lose any benefits of continued improvements in the
qiskit
version.qiskit
also looks to be deprecating the coupling map + properties in favor ofTarget
.As it stands, the interface to
ucc.compile
mixes these, taking in atarget_device
but only extracting its coupling map. Although this was intentional given the custom passes, that does break the user experience I would expect if I were to supply a fulltarget_device
.The simplest fix for now is to only allow a
target_device
and pass that through toUCCDefault1
.The text was updated successfully, but these errors were encountered: