This project uses hls4ml to create the firmware implementation of machine learning algorithms for single and mult-qubit readout.
Clone repository
git clone https://github.com/jicampos/ml-quantum-readout.git
Create conda environment
conda env create -f environment.yml
conda activate ml4qick-env
Single qubit data can be found here. Previous versions exist, which can be found in data dir.
Several notebooks for training exist, the simpliest are the 'workflow*.ipynb' notebooks. These notebooks start with training in (Q)Keras down to hls4ml IP generation. The scanning notebooks are useful for design space exploration, comparing traditional methods (match filtering and thresholding) with NNs of varying sizes.
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
fc1 (QDense) (None, 14) 11214
batchnorm1 (QBatchNormaliza (None, 14) 56
tion)
fc2 (QDense) (None, 2) 30
=================================================================
Total params: 11,300
Trainable params: 11,272
Non-trainable params: 28
The target device for the QICK system is the Zynq UltraScale+ RFSoC ZCU216 Evaluation Kit. We use Vivado 2020.1 for all synthesis results.