-
Notifications
You must be signed in to change notification settings - Fork 162
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
Update basis gates according to the fractional gates flag #2031
Milestone
Comments
wshanks
added a commit
to wshanks/qiskit-ibm-runtime
that referenced
this issue
Nov 15, 2024
This change moves the filtering of fractional gates and dynamic circuit instructions up into the processing of the raw configuration and properties dicts received through the API. Previously, the filtering was performed only during the creation of the `Target` for the backend. So previously an `IBMBackend` with fractional gates would have both fractional gates and dynamic circuit instructions in its configuration and properties data regardless of what value was used for `use_fractional_gates`. This situation led to inconsistent behavior when for example users tried to use `backend.basis_gates` as the reference for which gates were available instead of `backend.target.operation_names`. The previous changes to filter instructions during target creation are removed here, but the `use_fractional_gates` backend option is retained because `IBMBackend` loads the properties data lazily and can reload the configuration data after creation with the `refresh()` method. Closes Qiskit#2031
wshanks
added a commit
to wshanks/qiskit-ibm-runtime
that referenced
this issue
Nov 15, 2024
This change moves the filtering of fractional gates and dynamic circuit instructions up into the processing of the raw configuration and properties dicts received through the API. Previously, the filtering was performed only during the creation of the `Target` for the backend. So previously an `IBMBackend` with fractional gates would have both fractional gates and dynamic circuit instructions in its configuration and properties data regardless of what value was used for `use_fractional_gates`. This situation led to inconsistent behavior when for example users tried to use `backend.basis_gates` as the reference for which gates were available instead of `backend.target.operation_names`. The previous changes to filter instructions during target creation are removed here, but the `use_fractional_gates` backend option is retained because `IBMBackend` loads the properties data lazily and can reload the configuration data after creation with the `refresh()` method. Closes Qiskit#2031
wshanks
added a commit
to wshanks/qiskit-ibm-runtime
that referenced
this issue
Nov 15, 2024
This change moves the filtering of fractional gates and dynamic circuit instructions up into the processing of the raw configuration and properties dicts received through the API. Previously, the filtering was performed only during the creation of the `Target` for the backend. So previously an `IBMBackend` with fractional gates would have both fractional gates and dynamic circuit instructions in its configuration and properties data regardless of what value was used for `use_fractional_gates`. This situation led to inconsistent behavior when for example users tried to use `backend.basis_gates` as the reference for which gates were available instead of `backend.target.operation_names`. The previous changes to filter instructions during target creation are removed here, but the `use_fractional_gates` backend option is retained because `IBMBackend` loads the properties data lazily and can reload the configuration data after creation with the `refresh()` method. Closes Qiskit#2031
yaelbh
added a commit
that referenced
this issue
Nov 24, 2024
* Perform fractional gate filtering on raw API dicts This change moves the filtering of fractional gates and dynamic circuit instructions up into the processing of the raw configuration and properties dicts received through the API. Previously, the filtering was performed only during the creation of the `Target` for the backend. So previously an `IBMBackend` with fractional gates would have both fractional gates and dynamic circuit instructions in its configuration and properties data regardless of what value was used for `use_fractional_gates`. This situation led to inconsistent behavior when for example users tried to use `backend.basis_gates` as the reference for which gates were available instead of `backend.target.operation_names`. The previous changes to filter instructions during target creation are removed here, but the `use_fractional_gates` backend option is retained because `IBMBackend` loads the properties data lazily and can reload the configuration data after creation with the `refresh()` method. Closes #2031 * Undo stray tox.ini change * Add test of loading target properties * Fix filtering of fractional gate properties * black * Restore instruction filtering to convert_to_target * Fix test * Fix comments pointed out in review * Remove default values from _create_backend_obj * Regularize filtering of fractional gates * Set conditional to False when using fractional gates * Fix rzx->rzz in test backend's properties * Use Qiskit constant for control flow op names when possible * typo * black * Update qiskit_ibm_runtime/qiskit_runtime_service.py --------- Co-authored-by: Yael Ben-Haim <yaelbh@il.ibm.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Currently enabling fractional gates filters adds them to the target (and filters dynamic instructions), but
backend.properties()
andbackend.configuration()
remain unchanged.Once fixed, we can update the
convert_to_target
accordingly.The text was updated successfully, but these errors were encountered: