-
Notifications
You must be signed in to change notification settings - Fork 15
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
Reproduce 0.1 snapshot #1159
Reproduce 0.1 snapshot #1159
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## qblox #1159 +/- ##
==========================================
- Coverage 46.21% 45.43% -0.78%
==========================================
Files 96 96
Lines 4490 4567 +77
==========================================
Hits 2075 2075
- Misses 2415 2492 +77
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
ffcdd28
to
020e56c
Compare
ebd8602
to
0102e71
Compare
@stavros11 I obtained virtually identical snapshots Residual differences
The remaining differences are due to two crossed sequencers, since I'm using them incrementally (0, 1, 2, ...), while the 0.1 driver was using a default port assignment. However, these crossed sequencers are only seen for flux channels, which are not even involved in single shot.
The other differences are the The remaining
The image is obtained by:
However, the reports are still significantly different. Reports
You can notice some resemblance in the two pictures, and it seems clear that in the 0.2 one the ground state is being measured twice.
So, following the diff and the reports, it seems that there is no discrepancy in the configurations, and the acquisition is also good enough. At this point, it seems that the drive is not being properly sent, and it's likely to be on the sequence side, rather than a configuration problem. |
0102e71
to
09728af
Compare
And here are the comparisons for the drivers' sequences Programs
Sequencer snapshots
Waveforms
0.1{
'Envelope_Waveform_I(num_samples = 40, amplitude = 0.355315, shape = Gaussian(5))': {
'data': [
0.018216030410612587,
0.024512348186780185,
0.032473585278501534,
0.04235353963840072,
0.054383021382398256,
0.06874658057406086,
0.08555650186458075,
0.10482601734711296,
0.12644431305041612,
0.15015633703066492,
0.17555054343179538,
0.20205743692669842,
0.22896107208413613,
0.255424533524822,
0.28052896964037005,
0.3033241386392847,
0.3228868648375512,
0.3383825290191143,
0.34912394352834497,
0.3546218456516639,
0.3546218456516639,
0.34912394352834497,
0.3383825290191143,
0.3228868648375512,
0.3033241386392847,
0.28052896964037005,
0.255424533524822,
0.22896107208413613,
0.20205743692669842,
0.17555054343179538,
0.15015633703066492,
0.12644431305041612,
0.10482601734711296,
0.08555650186458075,
0.06874658057406086,
0.054383021382398256,
0.04235353963840072,
0.032473585278501534,
0.024512348186780185,
0.018216030410612587
],
'index': 0
},
'Envelope_Waveform_Q(num_samples = 40, amplitude = 0.355315, shape = Gaussian(5))': {
'data': [
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0
],
'index': 1
}
} 0.2Q1Sequence(
waveforms={
(UUID('faed3019-184e-4fe6-bde9-63de77e2d92f'), 0): Waveform(
data=array([0.01821603, 0.02451235, 0.03247359, 0.04235354, 0.05438302,
0.06874658, 0.0855565 , 0.10482602, 0.12644431, 0.15015634,
0.17555054, 0.20205744, 0.22896107, 0.25542453, 0.28052897,
0.30332414, 0.32288686, 0.33838253, 0.34912394, 0.35462185,
0.35462185, 0.34912394, 0.33838253, 0.32288686, 0.30332414,
0.28052897, 0.25542453, 0.22896107, 0.20205744, 0.17555054,
0.15015634, 0.12644431, 0.10482602, 0.0855565 , 0.06874658,
0.05438302, 0.04235354, 0.03247359, 0.02451235, 0.01821603]),
index=0
),
(UUID('faed3019-184e-4fe6-bde9-63de77e2d92f'), 1): Waveform(
data=array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0.]),
index=1
)
},
weights={},
acquisitions={},
program=Program(
elements=[
Line(Move(source=0, destination=Register(number=0), instr='move'), comment='init bin counter'),
Line(Move(source=0, destination=Register(number=1), instr='move'), comment='init bin reset'),
Line(Move(source=5000, destination=Register(number=2), instr='move'), comment='init shots counter'),
Line(WaitSync(duration=4, instr='wait_sync')),
Line(Wait(duration=4, instr='wait'), label='start'),
Line(Play(wave_0=0, wave_1=1, duration=40, instr='play')),
Line(Wait(duration=3395, instr='wait'), comment='relaxation'),
Line(Move(source=3, destination=Register(number=3), instr='move')),
Line(Wait(duration=65535, instr='wait'), label='wait3'),
Line(Loop(a=Register(number=3), address=Reference(label='wait3'), instr='loop')),
Line(ResetPh(instr='reset_ph'), comment='phase reset'),
Line(Add(a=Register(number=0), b=1, destination=Register(number=0), instr='add'), comment='bin increment'),
Line(Loop(a=Register(number=2), address=Reference(label='start'), instr='loop'), comment='loop over shots'),
Line(Stop(instr='stop'))
]
)
) |
c9ddb83
to
bbbf50f
Compare
Ok, the problem has been finally identified, and solved directly in #1088 It was due to the synchronization over different channels (a missing padding at the end of the experiment, since there is no align at the beginning). Then, since it turned out to be completely unrelated to all the configurations, I will review the content in here to check if there is anything worth to be kept, and then close this PR. |
In order to hit all available modules and sequencers
In order to avoid the instrument default to appear in the snapshots
All the relevant changes have been ported to #1088, thus this PR is not any longer relevant. (all the values not set explicitly, as it is done in here, are believed to assume those values by default internally, lacking a need to explicit enforce the defaults in this interface) |
With the last modifications in #1088, I'm pretty sure that the sequence uploaded is fully equivalent to the 0.1 (exact same waveforms' samples, the only differences in instructions are loops of length 1, or
set_ph 0
right after areset_ph
).So, I'm now attempting to reproduce the exact same cluster snapshot (obtainable with
cluster.print_readable_snapshot()
, to avoid parsing manually all the Qcodes structures).Here are the current snapshots being compared, before this PR.
0.1-snapshot.txt
0.2-snapshot.txt
The plan is to include all the differences, to make the 0.2 snapshot identical. The patches will be applied:
Known differences
Cluster level
reference_source
, reference clockModule level
outX_offset
, to replace what is currentlySequencer.offset_awg_path0
_path
,_offset
, andscope_
Unused modules
They are not being configured in any way currently.
Sequencer level
connect_outX
, sometimes unset instead ofI
/Q
/IQ
/off
marker_ovr_en
, sometimesNone
instead ofTrue
marker_ovr_value
, sometimes 0 instead of 15mod_en_awg
, sometimesFalse
instead ofTrue
nco_freq
, sometimesNone
instead of0
sync_en
, sometimesNone
instead ofTrue
thresholded_acq_threshold
for the usedqrm_rf
sequencer disagrees (0.0060097
instead of2.8846
)thresholded_acq_rotation
andthresholded_acq_threshold
set for unused module (270.14 (Degrees)
and-7.3504e-05
)Unused sequencers
They are not being configured in any way currently.
cont_mode_...
,mixer_...
, ...) not appliedUpdated snapshot
0.2-updated.txt