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

Generation of stretched single qubit gates for Richardson error extrapolation #18

Open
nkanazawa1989 opened this issue Sep 8, 2020 · 6 comments

Comments

@nkanazawa1989
Copy link

nkanazawa1989 commented Sep 8, 2020

Abstract

With QiskitPulse you can create custom quantum gates that is not provided by a backend. One of easy and practical examples is single qubit gates. In this project, you generate u1, u2, u3 gates with different stretch factor using QiskitPulse and run randomized benchmarking algorithm to estimate systematic error.

Description

In IBM Quantum backends u1, u2, u3, id, cx gates are provided as basis gates and any quantum circuit can be decomposed into this set. Two main sources of the error of those quantum gates are incoherent error due to limited T1 and T2 times and imperfection of pulse calibration.

Given T1 and T2 are time invariant, you can eliminate this noise with Richardson error extrapolation [1]:
image
Here you need to calibrate underlying quantum gates with different stretch factor c_i. In the case of circuit composed of single qubit gates, you need to calibrate u1, u2, u3 gates. Because these gates are generated from x90 or y90 pulse with virtual z rotation (pre-processing of pulse envelope), you just need to calibrate x90 and y90 pulses.

This is partially demonstrated by the joint work of U Chicago with IBM by using QiskitPulse [2]. In this paper they rescaled pulse amplitude with respect to the target rotation angle, but here we need to rescale both pulse duration and amplitude while the rotation angle remain unchanged, i.e. keeping the area under curve of your pulse envelope for different stretch factors.

[goal1]

Finally you can run a single qubit randomized benchmarking algorithm with your stretched x90 and y90 pulses. If your pulses are well calibrated, you will observe a result like this.

image

[goal2]

What you can investigate (advanced):

  • As explained above this extrapolation eliminates a noise which is sensitive to the stretching of pulse. By calculating the error per gate from the curve fitting, you can plot gate error over different order n in the equation 2.
  • On the other hand, the lower bound of error caused by T1 and T2 can be theoretically calculated with utility tool in Qiskit Ignis.
  • Combining above results, you can infer the required n to eliminate incoherent error of your quantum computing system. Check if there is any difference of n among backends (if you have multiple backend access)?

Reference:
[1] https://www.nature.com/articles/s41586-019-1040-7
[2] https://arxiv.org/abs/2004.11205

Members

@xiaotai-yang
Copy link

I would like to join this project~

@itsuka021
Copy link

I'm interesting in joining this project.

@nkanazawa1989
Copy link
Author

Welcome! :) Please assign youself to the issue (top right of this page). If you are not familiar with pulse you can learn the pulse syntax with this module.

@supergravity
Copy link

I'm interested

@HuberyMing
Copy link

Looks good. May I in?

@itsuka021
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants