lwa-project / ng_digital_processor

The Next Generation Digital Processor for LWA North Arm
Apache License 2.0
0 stars 0 forks source link

`CopyOp` and `ReChannelizeOp` stall on input ring resize #4

Open jaycedowell opened 1 year ago

jaycedowell commented 1 year ago

The CopyOp in ndp_drx.py stalls when it calls self.iring.resize(). Could be a overall size problem but that seems strange:

jaycedowell commented 1 year ago

Update from 2023/8/31: I currently have the buffer factor dropped by a factor of two from 10 to 5 but this still seems to have problems sometimes.

jaycedowell commented 1 year ago

I think the underlying problem here is that we are allocating in the cuda_host space and that is slow. The idea suggested in #10 about making the rings large initially also doesn't work because UDPCapture/UDPVerbsCapture resize the ring after it is created.

jaycedowell commented 1 year ago

From the old #10:

This seems related to https://github.com/lwa-project/ng_digital_processor/issues/4 in that the resizing of the input ring causes problems. Both CopyOp and ReChannelizerOp are resizing rings that live in cuda_host. Maybe we need to resize before block launch? Does that even work with the capture blocks?