discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] hardware speedup factor starting from AMD Sempron


From: Martin
Subject: Re: [Discuss-gnuradio] hardware speedup factor starting from AMD Sempron 3000+
Date: Fri, 16 Nov 2007 17:35:24 +0100
User-agent: Icedove 1.5.0.12 (X11/20070607)

Vincenzo Pellegrini wrote:
hi everybody,

I have got my ETSI DVB-T transmitter code working on my linux box, which
is based upon an AMD sempron 3000+ (single core) processor.

Can anybody roughly esteem the speed up factor that I would have by
upgrading to a state of the art desktop processor (maybe a dual core
Intel Penryn)?
That depends on your code.
Speedup is very dependent on the type of code you use.
Post your code somewhere and maybe we can tell you more.

Since you are doing DVB-T I suspect that a major part of your processing load is based on doing FFTs.

Does it use FFT's?
Does it use FFTW for FFT's?

How large are your FFTS? (probably 1024 and 8192 points)
How many FFTS run in parallel?
How much time is spend in FFTS versus time spend in other code?
Do you use single-precision or double-precision FFTS?

(FFTW is very dependent on how much cache you have and how fast your cache is. If your FFTS can run completely in the cache it will be magnitudes faster then if it can not.
FFTW also makes very effective use of 3Dnow, SSE, SSE2 if you have it.
)

Can you code into the cache of your current processor?
Can your code run in the cache of the new processor?
Does your code have independent flowgraph parts which are completely seperable? (Latest Gnuradio runs completely independent flowgraph parts in different threads so the can run on seperate CPUs/Cores if you have thems.)

Is your code memory-speed bound or processing bound?
(How memory intensive is your code?)
What is your current memory speed?
What is the memory speed of the intended processor?

Does your current processor have SSE, SSE2, SSE3?
Does the intended processor have SSE, SSE2, SSE3?

Are you planning on running the code in 64bit mode?

If your flowgraph is not seperable and your code is not memory bound and SSE/SSE2 is not an issue then a very course estimate would be:

speedup    new processor clockfreq/old processor clockfreq.

But this hardly is ever true if you compare different architectures like
AMD sempron versus Intel Core Duo.

Mainly because of the different number of FPUs in the different processors and hence different number of (floating point) ops per clock.

If your code is bound by FFT speed you can have a look at FFTW benchmarks for different processors to get an idea.

http://www.fftw.org/speed/
There is also code there to benchmark your current processor.




Can I expect my code, as it is, to take some advantage of a multicore
architecture?
> the gnuradiO REVISION i'm using is 3.01
If your code does have completely seperable flowgraph parts which contribute somewhat equally to the processing load then you should upgrade to the latest GnuRadio code. A dual-core would give you upto a doubling of the speed versus a single core.

But the best way to determine the speedup is to measure.
Compile the code on a machine with the new processor/architecture and benchmark.

If you have no access to this.
Make your code available with build instructions and ask others to benchmark.


I hope this helps,

Greetings,
Martin



thanks vincenzo



_______________________________________________
Discuss-gnuradio mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio






reply via email to

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