[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Discuss-gnuradio] First integration (was: Re: Run graph/ scheduler
From: |
Richard Bell |
Subject: |
Re: [Discuss-gnuradio] First integration (was: Re: Run graph/ scheduler overhead) |
Date: |
Fri, 24 Jul 2015 23:30:47 -0700 |
This topic of hardware efficient designs vs general purpose processor (GPP)
efficient is very interesting. I assumed the most efficient hardware designs
would tend to translate well into a GPP, because most good hardware designs are
good because they parallelize things like crazy. You would think that would
payoff in a GPP as well, up to the number of cores available. After reading
this and Toms blog on FFT filters vs FIR filters vs Polyphase filters, it seems
not to be the case in a lot of situations. My basic intuition makes me think
now that the GPP is very similar to a serial process when compared to an FPGA.
For this reason it is worth focusing a lot of energy on efficient serial
designs and not as much on massively parallel ones.
Is there literature on what metrics matter most when designing algorithms for a
GPP vs an FPGA, or is it mostly something you learn through experience? The GPP
has so many variables that come along with it that I imagine it's hard to do
much other then implement and test. Fun to think about.
Rich
Sent from my iPad
> On Jul 24, 2015, at 10:51 PM, Dennis Glatting <address@hidden> wrote:
>
>
>
>> If you can put together a patch that gives us a bit of a boost here,
>> that'd be great. But as you say, it doesn't look like this algorithm
>> as it is will ever be fantastically fast. It was definitely meant more
>> for hardware than this case.
>
> My first attempt at integration sees a performance improvement from
> 1.6ms to <510us (roughly -68%) according gr-ctrlport-monitor (i.e., "avg
> work time"). For this attempt I integrated the templates where the
> existing class is merely a wrapper (header and code body example below)
> thereby keeping the flavor of the original class interfaces, not to
> mention a certain amount of laziness on my part.
>
> Integrated but not tested is float. At least for the gr_complex case, my
> application shows squiggles on the QT GUI Sink.
>
> Oh, this is NOT C++11.
>
>
>
> Header:
>
> namespace gr {
> namespace filter {
>
> class FILTER_API dc_blocker_cc_impl : public dc_blocker_cc {
>
> private:
>
> dc_blocker_t<gr_complex> d_the_real_me;
>
> public:
>
> dc_blocker_cc_impl(int D, bool long_form);
> ~dc_blocker_cc_impl();
>
> int group_delay();
>
> int work(int noutput_items,
> gr_vector_const_void_star &input_items,
> gr_vector_void_star &output_items);
>
> };.75
>
> } /* namespace filter */
> } /* namespace gr */
>
>
> Code body:
>
> dc_blocker_cc_impl::dc_blocker_cc_impl( int D, bool long_form )
> : sync_block( "dc_blocker_cc",
> io_signature::make (1, 1, sizeof(gr_complex)),
> io_signature::make (1, 1, sizeof(gr_complex))),
> d_the_real_me( D, long_form ) {
>
> }
>
> dc_blocker_cc_impl::~dc_blocker_cc_impl() {}
>
> int
> dc_blocker_cc_impl::group_delay() {
>
> return d_the_real_me.group_delay();
> }
>
> int
> dc_blocker_cc_impl::work( int noutput_items,
> gr_vector_const_void_star& input_items,
> gr_vector_void_star& output_items) {
>
> return d_the_real_me.work( noutput_items,
> input_items,
> output_items );
> }
>
>
>
>
> _______________________________________________
> Discuss-gnuradio mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
- Re: [Discuss-gnuradio] Run graph/ scheduler overhead, (continued)
- Re: [Discuss-gnuradio] Run graph/ scheduler overhead, Dennis Glatting, 2015/07/12
- Re: [Discuss-gnuradio] Run graph/ scheduler overhead, West, Nathan, 2015/07/13
- Re: [Discuss-gnuradio] Run graph/ scheduler overhead, Tom Rondeau, 2015/07/13
- Re: [Discuss-gnuradio] Run graph/ scheduler overhead, Dennis Glatting, 2015/07/21
- Re: [Discuss-gnuradio] Run graph/ scheduler overhead, Marcus Müller, 2015/07/21
- [Discuss-gnuradio] Data (was: Re: Run graph/ scheduler overhead), Dennis Glatting, 2015/07/23
- Re: [Discuss-gnuradio] Data (was: Re: Run graph/ scheduler overhead), Dennis Glatting, 2015/07/23
- Re: [Discuss-gnuradio] Data (was: Re: Run graph/ scheduler overhead), Tom Rondeau, 2015/07/24
- Re: [Discuss-gnuradio] Data (was: Re: Run graph/ scheduler overhead), Dennis Glatting, 2015/07/24
- [Discuss-gnuradio] First integration (was: Re: Run graph/ scheduler overhead), Dennis Glatting, 2015/07/25
- Re: [Discuss-gnuradio] First integration (was: Re: Run graph/ scheduler overhead),
Richard Bell <=
- Re: [Discuss-gnuradio] First integration (was: Re: Run graph/ scheduler overhead), Dennis Glatting, 2015/07/25
- Re: [Discuss-gnuradio] Run graph/ scheduler overhead, Dennis Glatting, 2015/07/13
Re: [Discuss-gnuradio] Run graph/ scheduler overhead, Martin Braun, 2015/07/13
Re: [Discuss-gnuradio] Run graph/ scheduler overhead, Andy Walls, 2015/07/21