-
Notifications
You must be signed in to change notification settings - Fork 17
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
Qblox results not matching between qibo versions #919
Comments
Hi @DavidSarlle, thanks for reporting the issue. I see in your two options that many things are changing between the two options, including the Qibolab and Qibocal versions, and possibly even the platform specification (including all the instruments configurations). Moreover, the results reported are also being acquired in different days, possibly with a different "environment". And despite that, most of the frequencies are compatible to the MHz precision (or even lower), with the only remarkable difference in Qubit 3 spectroscopy. But that's so huge that it doesn't seem to be just related to a difference in the driver (though I may be wrong in many ways). And the fit for Qubit 4 in the old setup is even wrong... Could you explain more about your inference, to better understand where the problem could be localized? |
@alecandido regarding the platform specifications and runcard are exactly the same, you can check in the branches used. I have used in both cases exactly the same parameters.json and the same platform.py. If the qcodes driver is affecting the data we should debug it, because the data should be the same. Also in the T2 experiment. I am reporting the problem only for qblox because is the driver that we are using now with the iqm5 chip (totally characterized and well controlled) and also, because I did not see the same differences using Zh (before we disconnected) Regarding the envs, obviously they should be different, because the test is done with different versions of qibo. Regarding the days, I can run one after each other and the results are the same. Here you can see a fresh test executed right now: opt 1: http://login.qrccluster.com:9000/tiYyLgh-QHyCECK7sVv8tw== The freqs for q3 does not change that much between executions done with minutes of difference. I am pretty sure about that. Also if you test the new freq in q3 in a single shot experiment you will see that the freq fited is not the correct one, and the one from the old version produces a much better assg. fidelity. Also if you check the results the phase are changing between both cases in all the qubits. Also the freqs, if you run the same experiment many times, one after the other, using same branch and versions of qibo, does not change that much and this MHz of difference affect a lot in the fidelity of the qubit. Also check the T2 experiment pls. I will try to give you more examples with other routines. I am working on it. The fit is not important, it fails because the data. |
Another @alecandido @hay-k example with classify and Rabi length signal: opt 1: http://login.qrccluster.com:9000/1cB8FENOQdWkFth1S6LxBg== And I am pretty sure that the pi pulse is well chracterized and, in both cases, we are using same parameters.json and platform.py values. Check the Rabis pls |
It could just because our driver is built on top of that, so changes on their side can have the same impact as changes on our side.
Ok, that's relevant information. Thanks.
What I meant with "environment" was not the software virtual environment, but the experimental setup.
But being able to reproduce it today makes it much more reliable, thanks for rerunning!
I would not worry too much about the MHz (or sub-MHz) difference right now, it is a smaller instance of the same phenomenon leading to the failing fit. And it's a symptom. Btw, are you aware of any specificity of qubits 3, that could make it much more prone to these changes? However, it would be for sure useful if you can extract the Q1ASM generated by the two experiments. Currently, it's not too simple to extract, but not even that complicate:
In case of troubles, I believe @aorgazf knows the most about how to do it (I've done it myself just a few times, and mostly using hacks to avoid a connection, he's much more experienced in actual use). But you may also be more experienced than me :) This information is very valuable as diagnostic. Thanks again for the report and the additional details! |
Another @hay-k @alecandido example with Ramsey: opt 1: http://login.qrccluster.com:9000/nh0qZh1RQ_6EJbUmzqUUOQ== |
The experimental setup is not changing that much between days or executions
Thew q3 has a problem in the special cable/connector that we use to connect the chip to the fridge lines (is an hypothesis). we have observed that much more power should been applied to get a 40ns pi pulse. It was excatly the same with ZI. But, again, with 2 versions of qibo and qblox driver, the results are totally different as you can see. Also take into account the phase, it is not plotted in the same way.
I do not know how to do it, maybe @hay-k can do it in order to debug faster?
|
@alecandido please, check the latest examples (rabi and ramsey) and let me know if you need more... But you can try yourself using the branch reported and main. To me seems that we have a problem in the RO, maybe in how the start of the RO pulse is managed and set in the pulse sequence. But it is only an intuition after reviewing and running many many characterizations results over the iqm5q chip with ZH and qblox. We have to continue working on chracterization, that is why I am reporting the issue and not checking in depth, but I can confirm that we have been able to fully chracterize CZs with qblox and the old version of the code and not with main. Please let me know if we can help with something else. |
Indeed, you're definitely right.
I already saw them before my previous message. I agree with you about the quality of these results, but I'd focus on the spectroscopies from now, since they are informative enough and the simplest.
Yes, I'm not sure whether that's the problem, but I would place my bet there as well.
Maybe running a resonator spectroscopy on qubit 3 (or on all qubits, fwiw), to collect more info about the role of the drive pulse.
I see. Unfortunately, I can not shift much of my own effort on this issue right now, because of other commitments as well. |
@alecandido thanks for the effort. The only thing is that fixing this problems (if finally there are, that I think so) we will be able to run latest version of qibocal that gives us better execution times and functionalities when characterizing. Otherwise, if the results are not correct, we can not use the latest version of qibolab and qibocal with qblox. |
More examples of discrepancies between results @alecandido @hay-k : standard RB: OPT 1: http://login.qrccluster.com:9000/8YF3IcsmSaemvZoaKhqWYQ== |
@alecandido did you have time to take a look into this problem? It is quite important that we check it in order to open the use of the chip to anybody form TII/external colaborator using qibolab/qibocal main repos. |
@DavidSarlle I started taking a look at this today. Will let you know once I have any updates or need clarifications. |
Thanks a lot for the effort and taking care of the issue @hay-k . Let me know if you need help with something. |
By now I have closely examined all given examples, and I will summarize the findings and potential further steps below. First of all, none of the examples show non-matching results between official qibo/qibolab/qibocal versions. If one uses older official versions (from Dec 2023) they will produce matching results with the current main. What the examples show, is non-matching results between official qibocal/qibolab (no matter current main, or from Dec 2023) and custom versions of qibocal/qibolab that were branched out some time in Dec 2023. Here is a detailed explanation for each example:
All differences arise because the custom branches implement new functionality that were never transferred to the official releases:
Options to proceed:
|
Thanks @hay-k for the summary.
Regarding T2 and Ramsey experiment, I'm aware that in some branches there are custom patches to align qblox with the other instruments. That being sad, it is still possible to run T2 using Regarding merging custom patches, we need to assess if these changes are strictly necessary in the short term. |
Thanks @hay-k @andrea-pasquale for checking. Regarding the problems reported. To me, the objective is to be able to use main as soon as possible with qblox and iqm5q. The chip is totally characterized and we want to benchmark 2q gates and also, we need to expose the chip to all the QRC groups that may want to use it. Taking in mind that, in my opinion we should apply all the fixes without waiting the new qibolab or qibocal release. The issues were opened long time ago (May 15th and June 20th) and we have been using the old branch until now, migrating/fixing routines and the qblox driver in order to characterize the chip. Also, many new useful functionalities and improvements in execution times and fits, have been introduced on main qibocal/qibolab, and we want to use them instead of continuously migrate/make compatible them to/with the old branch. Specific comments regarding the problems found:
I can not say how to proceed, but we need to have something that works in main for the iqm5q as soon as possible that can run 2q gates as the older branches do. |
@DavidSarlle thanks for the summary. I know about the existence of all those issues. I am not responsible for priorities and setting expectations on when each issue is going to be resolved, but if you have the feeling that this type of issues are not getting enough priority recently, I can at least say that a lot of priority in the team is put on finishing the development of qibolab version 0.2. And that major release is not orthogonal to these issues - constant appearance of this type of needs is one of the reasons 0.2 was planned in the first place, so that new features can be added to qibolab in consistent manner, instead of scattered ad-hoc code everywhere. As I suggested, to mitigate for delays (both foreseen and unforeseen), and enable you to use latest features of qibolab/qibocal, some of the ad-hoc features from the custom branch can be ported to main. I will be working on this. |
@hay-k thanks. I really appreciate the effort of porting the necessary features of the custom branch into main. We need them to continue fine tuning and benchmark the 2q gates. |
After calibrating the iqm5q chip with qblox, we have detected that some routines are not working or returning data as expected. We have compared the results obtained with main and an older branch from December to check the differences. Here you can see some examples produced with the same action runcard and platform but with different versions of the qibolab driver and qibocal:
OPT 1:
qubit spec qblox (alvaro/latest):
qibo 0.2.4
qibocal 0.0.7 /nfs/users/david.fuentes/qibocal
qibolab 0.1.5 /nfs/users/david.fuentes/qibolab
OPT 2:
qubit spec qblox (david/iqm5q_latest == main):
qibo 0.2.8
qibocal 0.0.10 /nfs/users/david.fuentes/qibocal
qibolab 0.1.7 /nfs/users/david.fuentes/qibolab
qubit spec (all qubits)
OPT 1: http://login.qrccluster.com:9000/sAtV-_GDT2S3qiSeTag8vA==
OPT 2: http://login.qrccluster.com:9000/iFEq5TLGSn2sRnj5JHU3JQ==
classify + t2 (q0)
OPT 1: http://login.qrccluster.com:9000/xExLnD9_RlCDZSCC9cUpFA==
OPT 2: http://login.qrccluster.com:9000/kQrzGr9sT6C2KQiOk0yTzA==
I am working on compare more routines, but as you can see, qubit spectroscoopy is not showing the same result using the same chip, qubits, platform and parameters.json. To me seems that some changes has been introduced in the qblox driver from december that are producing differences between results, and, after checking the results, we are pretty confident that the good ones are the ones produced with the older version of qibolab.
I will update with more data comparison between versions as soon as possible
The text was updated successfully, but these errors were encountered: