Awesome write-up, Johnathan. I really enjoyed reading it.

A few topological problems arise that aren't solved yet by this, such as
> having adjacent accelerator blocks that both want to own the shared
> memory buffer.  The suggestion here is to use the above mechanism to
> create a domain crossing "sink" block and a domain crossing "source"
> block as endpoints in a hierarchical block that also instantiates
> whatever logic is needed to do the chained accelerators inside.
>

This goes back to the "ingress" and "egress" blocks that Justin's team used
in their original design.

I think having these transitions represented with such blocks makes sense,
from a graphical perspective, but under-the-hood I think we should
architect these "gresses" as zero-copies. How that relationship /
responsibility gets controlled & delegated is something we still need to
figure out, I think.


> Thus, again with minimally invasive changes to the GNU Radio internals,
> this mechanism supports both single accelerator blocks as well as the
> domain crossing sources and sinks.
>

Yeah, this is a big selling point of the design, I think.

Finally, this solution is orthogonal to the desired capability of having
> in-place processing blocks.  It can be implemented fairly rapidly, even
> in a 3.7 API compatible way, and gives the hooks for additional work to
> implement block's requesting in-place semantics vs. the existing
> streaming semantics.
>

Right, and this is the key, I think. This problem has to be solved in a
"coproc / accelerator"-independent way; otherwise the design would be
fundamentally flawed.

Cheers,
Ben


>
> --
> Johnathan Corgan, Corgan Labs
> SDR Training and Development Services
> http://corganlabs.com
>
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to