My own experience is that 200 S/s on two channels is very difficult to achieve from the host. Separate streamers may help, but you will likely need to move to DPDK to get the best performance. I have not tried DPDK recently, but when I tried it a few years ago, the performance was excellent, but it was not easy to get it working properly (and there were some negative side effects that I never solved). The "skip_ddc" and "skip_duc" do not have any effect on FPGA images that are "statically linked" between the Radio and DDC/DUC (which is likely all UHD 4 images).
On Tue, Jun 13, 2023 at 12:40 PM Marcus D. Leech <patchvonbr...@gmail.com> wrote: > On 12/06/2023 22:03, Aaron Smith wrote: > > Hello All, > > > > I am trying to transmit on two UBX-160 daughterboards within a single > > X310 at 200 Msps using UHD 4.1.0.5-3. > > > > I am experiencing periodic underflows, and I have already applied all > > of the tips in the "USRP Host Performance Tuning Tips and Tricks" > > application note, with the exception of using DPDK. > > > > I have a few questions about UHD streaming and what can be done to > > improve performance. > > > > 1. My current implementation uses a single tx_streamer for both > > channels, and uses multiple threads to populate the buffers sent to > > the X310. Would the performance be better if I used two separate > > streamers, one for each channel, in separate threads? > I don't think there's a closed-form answer to this. Because it would > depend on your particular system, application, etc. I'd > just do the experiment and see... > > > > > 2. I have seen some claims that DPDK is not as useful with UHD 4, is > > this true? > I don't use DPDK myself, so I don't know if that's true or not. > > > > > 3. With UHD 4, would it help to set the skip_duc and skip_ddc flags > > with full rate streaming? > Again, the answer here is susceptible to experiment... > > > > > 4. Are underflows only created within the send() function? Or can the > > timing of calls to send() cause underflows, especially when the burst > > flags are used? For example, suppose I set the start of burst flag to > > true for a single buffer containing 1 second of data, and then I > > toggle the start of burst flag to false for subsequent buffers and > > continuously call send() on 1 second buffers for 10 minutes. On the > > last second I set end of burst flag to true. The idea is to create a > > 10 minute long "burst." If I call send late on one of the one second > > buffers in the middle of the "burst" will UHD report underflows? My > > thinking is the X310 should think it is in the middle of a burst, and > > will expect data, but send() has not been called, so there is no data > > for the radio to read from the host, creating underflows. Perhaps I am > > also misunderstanding the purpose of the burst flags, as they are not > > well documented. > > > > Thanks for the help! > > Armon > > > Underflows occur when the radio hardware underflows its FIFO, which in > turn means the host isn't providing samples at > the desired rate--the radio has no idea what your "send()" boundaries > are, just that it isn't getting samples when it needs > them. The data in the "send()" has to percolate through UHD, > through the kernel IP stack (or DPDK stack) and its buffers, and > then the hardware buffers. Any information about exactly when you > called "send()" is pretty invisible by the time it reaches > the radio. > > The "burst" architecture is really intended for applications like TDD or > half-duplex, where you need to let the radio know to > not expect any more TX samples, so it can do things like switch > antennas, etc. > > > > > > > > _______________________________________________ > > USRP-users mailing list -- usrp-users@lists.ettus.com > > To unsubscribe send an email to usrp-users-le...@lists.ettus.com > _______________________________________________ > USRP-users mailing list -- usrp-users@lists.ettus.com > To unsubscribe send an email to usrp-users-le...@lists.ettus.com >
_______________________________________________ USRP-users mailing list -- usrp-users@lists.ettus.com To unsubscribe send an email to usrp-users-le...@lists.ettus.com