BBN-Q / QGL

Quantum Gate Language (QGL) is a domain specific language embedded in python for specifying quantum gate sequences.
Apache License 2.0
29 stars 12 forks source link

Unexpected behavior for long sequences with APS2 #279

Open ranzani opened 3 years ago

ranzani commented 3 years ago

When running long sequences with the APS2 if the waveform data cross a cache line the prefetcher can't keep up. The experiment proceeds, but the data are random.

Verified this for example with the following test sequence:

[[X(q,length = l), MEAS(q)] for l in np.arange(2e-6,50e-6,2e-6)]

matthewware commented 3 years ago

Just as a note to others, this is an issue with the APS2 waveform cache. For longer pulses that aren't constructed with time/amplitude pairs (constant functions), these pulses can chew through all the on-system waveform memory. You can get around this issue by using waveforms made like in the echo-CR case: https://github.com/BBN-Q/QGL/blob/e50941bc5d0c059041fdef0b3f8856589106d4ab/QGL/PulsePrimitives.py#L358-L374

Long term, we're hoping to have some checks at compile time to make sure you aren't overflowing the waveform memory.