U-Net on PYNQ
Closed this issue · 4 comments
Hi, I'm trying to run U-Net like segmentation model on PYNQ. I have successfully run the model when I removed skip connections (this is the model after conversion to HW layers:
QuantSimpleUnet_512x512x1_1classes_1batch_4W4A_noSkip_upsample_qonnx-hw_layers.zip). But I can't run the model with skip connections. I can synthesize it, but when I try to run it with Python driver, it's stuck on this line. I reduced it only to one skip connection, so that it resembles ResNet block, but the result is the same. For reference, this is the model with one skip connection, after conversion to HW layers:
QuantSimpleUnet_512x512x1_1classes_1batch_4W4A_oneSkip_upsample_qonnx-hw_layers.zip
Hi,
did you insert FIFOs of sufficient depth between the graph nodes ? Maybe there is a deadlock at the skip connection.
Yes, InsertFIFO() will just insert minimally sized FIFOs or no FIFOs (depending on create_shallow_fifos
) otherwise.
You'll need to set the FIFO depths in one of the ways shown in the "step_set_fifo_depths" step:
- DeriveFIFOSizes() + InsertFIFO()
- InsertAndSetFIFODepths()
- InsertFIFO(create_shallow_fifos=True) + applying manual FIFO depths defined in your folding config json
In general, I would recommend sticking as closely as possible to the default build dataflow steps.
Closing this issue because of inactivity, please feel free to re-open if your problem isn't solved.