<< Chapter < Page Chapter >> Page >

Similarily, [link] compares SFFT to FFTW 3.3 running in patient mode, and [link] compares SFFT to SPIRAL. There are fewer columns in the heatmaps of [link] because SPIRAL only computes single-threaded FFTs for sizes 2 1 through to 2 13 .

Fftw 3.3 in estimate mode

[link] shows that SFFT is faster than FFTW 3.3 running in estimate mode in almost all cases over a range of Intel x86 machines that implement SSE. The horizontal streaks of yellow-red that can be seen in some heatmaps are outliers and likely caused by transient system processes that were running while SFFT was being benchmarked. Similar streaks appear at the same locations in Figures [link] and [link] .

Fftw 3.3 in patient mode

Core i7-2600, single-precision
Core i7-2600, double-precision
Core i5-2557M, single-precision
Core i5-2557M, double-precision
Performance of FFTs on recent Sandy Bridge machines, with x86_64 SSE binaries. Compiler: icc

[link] shows that SFFT is faster than FFTW 3.3 running in patient mode in the majority of cases over a range of Intel x86 machines that implement SSE. SFFT was generally slightly slower than fftw3-patient on older machines such as the Pentium 4's and the 1GHz Pentium M, while on the newer machines such as the Sandy Bridge based Core i7-2600 and the Nehalem based Core i5-660, SFFT was clearly faster than FFTW (see [link] ). This could be explained by the fact that FFTW performs extensive instruction level optimizations, such as scheduling, and that the older processors have smaller instruction and trace caches.

Spiral

Single-precision, clang 1.1
Double-precision, clang 1.1
Single-precision, clang 3.0
Double-precision, clang 3.0
Performance of clang-compiled x86_64 SSE FFTs on an Intel Core2 Duo P8600

The last row of [link] shows that SFFT is generally slower than SPIRAL when both libraries are compiled with clang 1.1. However, with more recent releases of clang, which do much more code optimization, the situation is reversed, as shown in [link] . In some cases SPIRAL compiled with clang 3.0 is slower than SPIRAL compiled with clang 1.1, while SFFT is generally faster when compiled with clang 3.0. This demonstrates that the speed of automatically tuned SPIRAL code is specific to certain compilers.

SPIRAL's double-precision performance is slightly better than SFFT when compiled with icc or gcc, while SFFT's single-precision code is faster than SPIRAL on recent machines, and of similar speed on older machines.

Avx

Of the machines that were used for benchmarks, only two supported AVX: the Macbook Air 4,2 with an Intel Core i5-2557M, and a Linux machine with an Intel Core i7-2600. [link] shows that SFFT is clearly faster than FFTW up until about 1024 points, while performance between the two is similar for larger transforms.

Results for Intel IPP are also plotted in [link] , but only for the Core i7-2600. IPP did not detect the existence of AVX on the Core i5-2557M, and instead used SSE, as plotted in [link] . Apple vDSP does not support AVX, and so SSE vDSP results for the Macbook Air 4,2's Core i5-2557M are also plotted in [link] .

Core i7-2600, single-precision
Core i7-2600, double-precision
Core i5-2557M, single-precision
Core i5-2557M, double-precision
Performance of FFTs on recent Sandy Bridge machines, with x86_64 AVX binaries. Compiler: icc

Arm neon

Apple A4 (ARM Cortex-A8)
Apple A5 (ARM Cortex-A9)
Performance of single-precision FFTs on ARM NEON devices running iOS. Compiler: Apple clang 3.0

SFFT and FFTW 3.3.1 were compiled with Apple clang 3.0 and benchmarked on an Apple iPod touch 4G and an Apple iPad 2, which contain the Apple A4 and A5 SoCs respectively. The A4 implements the ARM Cortex-A8, while the A5 implements the ARM Cortex-A9, both of which support ARM NEON.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Computing the fast fourier transform on simd microprocessors. OpenStax CNX. Jul 15, 2012 Download for free at http://cnx.org/content/col11438/1.2
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Computing the fast fourier transform on simd microprocessors' conversation and receive update notifications?

Ask