Skip to content
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

Improve integer-based Clifford operations for 1Q/2Q RB #2

Closed

Conversation

itoko
Copy link
Owner

@itoko itoko commented Oct 7, 2022

Summary

This PR is a follow-up of qiskit-community#892, qiskit-community#922 for improving implementation of clifford_utils module.

Details and comments

This PR improves the implementation of clifford_utils module without changing the original algorithms for integer-based Clifford operations. It includes

  • Change API from methods CliffordUtils.* to functions clifford_utils.*
  • Remove creation of CliffordUtils objects (Change CliffordUtils back to a library class)
  • Simplify API by minimizing public functions
  • Change clifford data file format to npz

It preserves great ideas introduced in qiskit-community#892 such as:

  • Using lookup tables for Clifford operations (compose and adjoint)
    • Especially, sparse lookup table for 2Q Clifford composition (that reduces memory cost to store lookup table)
  • Composing 2Q Clifford circuit from triplets of circuit layers (that reduces computational cost for basis translation)

itoko and others added 3 commits October 12, 2022 17:21
* Improve custom transpilation for faster 1Q/2Q RB with simplifying code structure

* Avoid using general Gate objects

* Fix handling of interleaved delays

* Add custom calibrations support in transpiling circuits

* Add more comments

* Small cleanups

* More precise retrieve of basis gates

* Update qiskit_experiments/library/randomized_benchmarking/rb_experiment.py

Co-authored-by: Naoki Kanazawa <[email protected]>

* Renames and updates following review comments

* Remove experiment_type from circuit metadata

* Add backend V1 to V2 conversion

* Fix docs following review comments

* Separate a code block as a private method

* Change to create BackendTiming object outside loop

Co-authored-by: Naoki Kanazawa <[email protected]>
Co-authored-by: merav-aharoni <[email protected]>

Including following features:
* Simplify clifford_utils API
* Clean up script file for clifford data generation
* Change clifford data files to npz formant and add them to package
* Simplify data handling for 2q clifford compose with sparse matrix
@itoko itoko force-pushed the feature-rb-integer-clifford branch from b653620 to a9c1760 Compare October 12, 2022 09:19
@itoko itoko closed this Oct 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant