[Clam-devel] Awesome tonal analysis speed up by using fftw3

David García Garzón dgarcia at iua.upf.edu
Wed Apr 25 02:25:51 PDT 2007

Thats something i should have done a long time before. Tonal analysis was 
using a very bare numerical recipes fft implementation. I just changed it by 
the fftw3 and the results are awesome.

Processing 2000 frames with previous fft implementation (GCycles):
128.77 <- FFT
9.56 <- ConstantQ (reference)
140.7 <- Full TonalAnalysis
Processing 2000 frames with ffw3
21.72 <- FFT
9.6 <- ConstantQ (reference)
32.3 <- Full TonalAnalysis

So that means almost a 25% of the former time! (400% speedup)
Of course this also affects the TonalAnalysis initialization.

BTW. Related to last Pau mail on FFTW3. First, this increase is so high 
because TonalAnalysis FFT size is really huge and FFT is N*logN, not linear. 
Second, I added  #if USE_FFTW3 so that when disabled, the old implementation 
is still active. And we can compare it better.

Also i think the algorithm can be further optimized, as i had to copy the 
fftw3 output to get the complementary components (before that copy the speed 
up was 467%) because ConstantQ used them. I think this copy could be removed 
and also the ConstantQ getting profit of such anti-simetry.

David García Garzón
(Work) dgarcia at iua dot upf anotherdot es
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.clam-project.org/pipermail/clam-devel-clam-project.org/attachments/20070425/7d348a8e/attachment-0003.pgp>

More information about the clam-devel mailing list