User Tools

Site Tools


conv:conv

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
conv:conv [2008/01/10 15:00] devaconv:conv [2008/01/24 12:08] deva
Line 8: Line 8:
   * Jonas Suhr Christensen - //suhr@daimi.au.dk// - 20032491   * Jonas Suhr Christensen - //suhr@daimi.au.dk// - 20032491
   * Bent Bisballe Nyeng - //deva@daimi.au.dk// - 20001467   * Bent Bisballe Nyeng - //deva@daimi.au.dk// - 20001467
 +
 +====Analysis====
 +The following graphs show the execution time of a single convolution iteration, using the overlap and save algorithm with various optimizations enabled.\\
 +The timings are produced using a Intel(R) Core(TM)2 Duo CPU E6750 @ 2.66GHz, with 4096KB cache.\\
 +The algorithm optimizations are named as follows:
 +  * **Double** This is an implementation with no particular optimizations.
 +  * **Float** This is a simple implementation using float as the internal datatype.
 +  * **Real Double** This is an implementation using real ffts instead of complex.
 +  * **Real Float** This is an implementation using real ffts instead of complex, with float as internal datatype.
 +  * **MT Double** This is an implementation running on multiple CPUs.
 +  * **MT Float** This is an implementation with float as internal datatype, running on multiple CPUs.
 +  * **MT Real Double** This is an implementation using real ffts instead of complex, running on multiple CPUs.
 +  * **MT Real Float** This is an implementation using real ffts instead of complex, with float as internal datatype, running on multiple CPUs.
 +{{:conv:graph_256.png?450}}
 +{{:conv:graph_512.png?450}}\\
 +{{:conv:graph_1024.png?450}}
 +{{:conv:graph_2048.png?450}}\\
 +{{:conv:graph_4096.png?450}}\\
 +As it is seen on the graphs the speed improves with the buffer size increasing, up to 1024 samples. At this point the iteration time starts fluctuating. This may be caused by internal cache size on the given CPU.
  
 ====Links==== ====Links====
Line 17: Line 36:
   * http://www.ludd.luth.se/~torger/brutefir.html#bruteconv_3 - Some info about partitioned convolution.   * http://www.ludd.luth.se/~torger/brutefir.html#bruteconv_3 - Some info about partitioned convolution.
   * http://www.aurora-plugins.it/Public/Papers/164-Mohonk2001.PDF - More on partitioned convolution.   * http://www.aurora-plugins.it/Public/Papers/164-Mohonk2001.PDF - More on partitioned convolution.
 +  * http://www.linuxdevcenter.com/lpt/a/586 - A LADSPA tutorial
  
 ====Code==== ====Code====
Line 122: Line 142:
 #define RE 0 #define RE 0
 #define IM 1 #define IM 1
 +
  
 static FFTW_DATATYPE *hfft = NULL; static FFTW_DATATYPE *hfft = NULL;
conv/conv.txt · Last modified: 2008/09/04 12:09 by deva