Closed jordivallsq closed 3 months ago
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 96.24%. Comparing base (
6514884
) to head (75225b6
). Report is 36 commits behind head on main.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
After further investigation of the bug the conclusions are these:
QM has a configuration dictionary (https://docs.quantum-machines.co/1.1.6/qm-qua-sdk/docs/Introduction/config/) including all the information of pulses, waveforms, weights...
The bug originated from a conflict between the information contained in pulses and waveforms for non-Square pulses, in pulses
the duration is saved as an integer, and in waveforms
the full pulse is saved as an array (with the requirement that the shape of the array must be the same as the duration).
The machine saves internally this configuration using a system of labels and to do so we create hashes based on the characteristics of the pulse (i.e. Gaussian(amplitude: 0.1,duration: 1008,num_sigmas: 4.0)
) but the code ignored the duration (Gaussian(amplitude: 0.1,num_sigmas: 4.0)
) presumably because it is not needed (even detrimental because is irrelevant information) for Square waveforms. But for non-Square waveforms, it creates a conflict where duration sizes do not match between waveforms
and pulses
.
The solution implemented solves the problem on non-Square waveforms leaving Square waveforms with the same functionality.
By hardware the test has been test with rabi experiments where the size of the pulse changed in every iteration. The experiment run smoothly without crashes (unlike prior to the fix).
This image is for a drive of 100 ns:
and for 400 ns:
we can see how we are able to increase the size of a waveform (through software loops) without any crash
This experiment has been done in collaboration with Oscar
I am adding @fedonman as a reviewer because Juanjo is not available this week
This is a temporal Hotfix with the bugfix, some feedback is required from Hardware to see if this is the real solution
Bug reference: https://github.com/qilimanjaro-tech/qililab/issues/709