discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Try to improve E100's performance at high sample


From: ziyang
Subject: Re: [Discuss-gnuradio] Try to improve E100's performance at high sample rate
Date: Thu, 19 Jan 2012 19:04:34 +0100
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.15) Gecko/20110419 Thunderbird/3.1.9


I dont recommend using the extra blocks, that would probably cause more
overhead. Looking at gr_quadrature_demod_cf::work, it looks like you can
vectorize the operation of the conjugate multiply, then the atan, then
the gain scaler. So, that would be one for loop that operates on 4
samples at a time, and calls 3 volk functions.


Hi, Josh. I implemented a quadrature_demod_cf block (please find it in the attachment). Since the Volk atan2 function is currently only for SSE as Nick said, and there is no conjugate-multiply function for FC32 inputs, I use Gnuradio's built-in conjugate and fast_atan_2f functions, plus two volk multiply functions. The for loop is timed by high_res_timer. Besides, the work function of gr_quadrature_demod_cf is timed for comparison purpose (also attached). Each of these two blocks is connected to a file_source which provides modulated data.

I tested two blocks individually, firstly on a PC with Intel processor, then on E100. On PC, it always take volk-based block less time to demodulate a same-size-buffer of data (i.e. for 4096 input items, it takes the original quadrature_demod_cf block 0.185 ms but takes volk-based block only 0.163 ms to demodulate).

However, the results are different on E100: sometimes the original block runs faster, sometimes the volk-based block does. I ran the tests for several times, although the recorded time changes by some tens (occasionally a few handreds) of nanoseconds, but neither block is always faster than the other.

Now I'm confused by the results, since I expected the volk-ified demodulator to be faster. Could you give me some help on this issue? Thanks.


Best Regards,

Terry

Attachment: volk_quad_demod_workfunc.cc
Description: Text Data

Attachment: gr_quadrature_demod_cf_workfunc.cc
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]