Are you saying that it is better to always make copies of the data rather
than just make copies when you need them?

In any case, I think you misunderstand both how GNU Radio works and how UHD
interacts with it.  UHD provides a single copy of data to GNU Radio  for
two reasons -- first, that is the most efficient thing to do, and second,
UHD can't possibly know what GNU Radio plans to do with the data.  GNU
Radio passes pointers of the data to every block that needs it.  Blocks are
not allowed to modify their inputs, only their outputs.  This is
fundamental to how GNU Radio operates.

Matt




On Thu, May 16, 2013 at 9:02 PM, Mark McCarron <[email protected]>wrote:

> There is a performance issue with this.  If your program needs to
> manipulate the raw data, but at the same time provide that raw data to
> another branch(es), a copy much be made.  If this is the case, then it
> would make more sense to duplicate the data in parallel as it enters the
> system.  This should be more efficient than memcopy.
>
> I am looking into DMA to see if this is possible.
>
> Regards,
>
> Mark McCarron
>
> ------------------------------
> From: [email protected]
> Date: Thu, 16 May 2013 20:51:32 -0700
> Subject: Re: [Discuss-gnuradio] Question about UHD driver
> To: [email protected]
> CC: [email protected]
>
>
>
> There is no need to create multiple copies.  The consuming blocks are each
> given a pointer to the same data, and the memory is not freed until all the
> consuming blocks indicate they are done with it.
>
> Matt
>
>
> On Thu, May 16, 2013 at 11:00 AM, Mark McCarron 
> <[email protected]>wrote:
>
> I am wondering if the UHD driver has the ability to create multiple copies
> of the stream in memory???
>
> Let's say I have a flow-graph that has two branches, the first pushes
> complex data to an FFT, whereas the second demodulates a portion of that
> data into AM.
>
> Does the driver supply a single stream, which is then copied by the
> application?  Or does it create two copies of the stream and allow each
> branch of the flow-graph to manipulate the data via pointers?
>
> I'm digging into DMA to see if this is possible, I would be surprised if
> there was a limitation here.
>
> Regards,
>
> Mark McCarron
>
> _______________________________________________
> Discuss-gnuradio mailing list
> [email protected]
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
>
>
> _______________________________________________
> Discuss-gnuradio mailing list
> [email protected]
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
>
_______________________________________________
Discuss-gnuradio mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to