Rust FFT benchmark

Single-threaded RustFFT and FFTW on complex float64 transforms. Runs on the server.

Speed (GFLOP/s) by array sizeLatency by array size

initial run · 1.63 s · 253 sizes

RustFFTFFTW

Input breakdown

NfactorsshapeRustFFTFFTW
642^6power of two110 ns125 ns
802^4 × 5smooth158 ns181 ns
962^5 × 3smooth166 ns124 ns
1122^4 × 7mixed187 ns162 ns
1282^7power of two181 ns164 ns
1442^4 × 3^2smooth248 ns428 ns
1602^5 × 5smooth338 ns256 ns
1762^4 × 11mixed368 ns534 ns
1922^6 × 3smooth357 ns545 ns
2082^4 × 13mixed803 ns564 ns
2242^5 × 7mixed571 ns482 ns
2402^4 × 3 × 5smooth556 ns359 ns
2562^8power of two443 ns355 ns
2722^4 × 17mixed1.3 µs1.9 µs
2882^5 × 3^2smooth634 ns1.0 µs
3042^4 × 19mixed1.5 µs2.2 µs
3202^6 × 5smooth659 ns476 ns
3362^4 × 3 × 7mixed871 ns916 ns
3522^5 × 11mixed869 ns1.0 µs
3682^4 × 23mixed2.2 µs3.2 µs
3842^7 × 3smooth784 ns1.2 µs
4002^4 × 5^2smooth1.1 µs633 ns
4162^5 × 13mixed2.0 µs1.2 µs
4322^4 × 3^3smooth859 ns1.6 µs
4482^6 × 7mixed967 ns738 ns
4642^4 × 29mixed3.2 µs4.5 µs
4802^5 × 3 × 5smooth1.2 µs1.5 µs
4962^4 × 31mixed3.4 µs5.2 µs
5122^9power of two978 ns778 ns
5282^4 × 3 × 11mixed1.6 µs1.4 µs
5442^5 × 17mixed2.8 µs3.8 µs
5602^4 × 5 × 7mixed1.5 µs1.4 µs
5762^6 × 3^2smooth1.4 µs1.9 µs
5922^4 × 37mixed4.0 µs11.4 µs
6082^5 × 19mixed3.4 µs4.5 µs
6242^4 × 3 × 13mixed2.8 µs1.6 µs
6402^7 × 5smooth1.3 µs988 ns
6562^4 × 41mixed5.0 µs10.6 µs
6722^5 × 3 × 7mixed2.0 µs1.8 µs
6882^4 × 43mixed5.8 µs9.1 µs
7042^6 × 11mixed1.7 µs2.1 µs
7202^4 × 3^2 × 5smooth1.9 µs2.8 µs
7362^5 × 23mixed4.7 µs6.5 µs
7522^4 × 47mixed12.0 µs11.9 µs
7682^8 × 3smooth2.0 µs1.6 µs
7842^4 × 7^2mixed2.2 µs2.0 µs
8002^5 × 5^2smooth2.1 µs1.8 µs
8162^4 × 3 × 17mixed4.3 µs5.9 µs
8322^6 × 13mixed4.1 µs2.3 µs
8482^4 × 53mixed9.9 µs21.8 µs
8642^5 × 3^3smooth2.2 µs3.5 µs
8802^4 × 5 × 11mixed2.5 µs2.5 µs
8962^7 × 7mixed2.0 µs2.1 µs
9122^4 × 3 × 19mixed5.2 µs6.9 µs
9282^5 × 29mixed6.6 µs9.3 µs
9442^4 × 59mixed18.2 µs15.2 µs
9602^6 × 3 × 5smooth2.8 µs2.4 µs
9762^4 × 61mixed9.0 µs15.4 µs
9922^5 × 31mixed7.6 µs10.5 µs
10082^4 × 3^2 × 7mixed2.7 µs2.6 µs
10242^10power of two2.2 µs1.7 µs
10402^4 × 5 × 13mixed5.0 µs3.1 µs
10562^5 × 3 × 11mixed3.0 µs3.0 µs
10722^4 × 67mixed9.8 µs21.4 µs
10882^6 × 17mixed5.8 µs7.8 µs
11042^4 × 3 × 23mixed7.5 µs9.5 µs
11202^5 × 5 × 7mixed3.1 µs2.6 µs
11362^4 × 71mixed11.8 µs26.3 µs
11522^7 × 3^2smooth3.0 µs4.6 µs
11682^4 × 73mixed9.5 µs17.4 µs
11842^5 × 37mixed9.0 µs23.3 µs
12002^4 × 3 × 5^2smooth3.8 µs3.6 µs
12162^6 × 19mixed7.1 µs9.6 µs
12322^4 × 7 × 11mixed3.5 µs4.6 µs
12482^5 × 3 × 13mixed5.8 µs3.6 µs
12642^4 × 79mixed16.0 µs21.3 µs
12802^8 × 5smooth3.6 µs2.4 µs
12962^4 × 3^4smooth3.5 µs5.5 µs
13122^5 × 41mixed10.7 µs21.9 µs
13282^4 × 83mixed15.6 µs34.8 µs
13442^6 × 3 × 7mixed4.1 µs4.1 µs
13602^4 × 5 × 17mixed8.0 µs10.0 µs
13762^5 × 43mixed12.7 µs18.3 µs
13922^4 × 3 × 29mixed10.1 µs14.4 µs
14082^7 × 11mixed3.9 µs4.2 µs
14242^4 × 89mixed12.4 µs33.6 µs
14402^5 × 3^2 × 5smooth4.3 µs3.5 µs
14562^4 × 7 × 13mixed7.6 µs5.7 µs
14722^6 × 23mixed10.2 µs13.0 µs
14882^4 × 3 × 31mixed11.8 µs15.7 µs
15042^5 × 47mixed23.8 µs24.9 µs
15202^4 × 5 × 19mixed9.8 µs12.1 µs
15362^9 × 3smooth4.4 µs3.8 µs
15522^4 × 97mixed12.7 µs22.5 µs
15682^5 × 7^2mixed5.6 µs4.6 µs
15842^4 × 3^2 × 11mixed5.1 µs6.3 µs
16002^6 × 5^2smooth4.9 µs4.3 µs
16162^4 × 101mixed17.5 µs24.2 µs
16322^5 × 3 × 17mixed9.2 µs11.9 µs
16482^4 × 103mixed22.1 µs37.8 µs
16642^7 × 13mixed8.2 µs5.0 µs
16802^4 × 3 × 5 × 7mixed6.3 µs5.6 µs
16962^5 × 53mixed20.5 µs48.3 µs
17122^4 × 107mixed18.2 µs39.1 µs
17282^6 × 3^3smooth4.9 µs7.1 µs
17442^4 × 109mixed13.8 µs33.0 µs
17602^5 × 5 × 11mixed5.3 µs5.2 µs
17762^4 × 3 × 37mixed14.0 µs34.2 µs
17922^8 × 7mixed5.5 µs4.6 µs
18082^4 × 113mixed14.9 µs37.3 µs
18242^5 × 3 × 19mixed12.9 µs14.6 µs
18402^4 × 5 × 23mixed14.4 µs24.6 µs
18562^6 × 29mixed14.0 µs19.9 µs
18722^4 × 3^2 × 13mixed8.9 µs7.0 µs
18882^5 × 59mixed36.9 µs31.6 µs
19042^4 × 7 × 17mixed11.2 µs15.2 µs
19202^7 × 3 × 5smooth5.4 µs4.7 µs
19362^4 × 11^2mixed6.3 µs9.1 µs
19522^5 × 61mixed16.9 µs31.4 µs
19682^4 × 3 × 41mixed18.1 µs33.1 µs
19842^6 × 31mixed16.3 µs21.5 µs
20002^4 × 5^3smooth6.7 µs6.8 µs
20162^5 × 3^2 × 7mixed6.3 µs5.9 µs
20322^4 × 127mixed17.8 µs30.4 µs
20482^11power of two7.2 µs4.3 µs
20642^4 × 3 × 43mixed18.6 µs28.2 µs
20802^5 × 5 × 13mixed10.9 µs6.2 µs
20962^4 × 131mixed26.2 µs53.8 µs
21122^6 × 3 × 11mixed6.3 µs7.1 µs
21282^4 × 7 × 19mixed13.8 µs17.8 µs
21442^5 × 67mixed20.0 µs44.4 µs
21602^4 × 3^3 × 5smooth5.9 µs9.6 µs
21762^7 × 17mixed12.5 µs17.2 µs
21922^4 × 137mixed30.9 µs49.9 µs
22082^5 × 3 × 23mixed15.3 µs19.6 µs
22242^4 × 139mixed35.8 µs52.3 µs
22402^6 × 5 × 7mixed6.6 µs5.8 µs
22562^4 × 3 × 47mixed36.3 µs36.4 µs
22722^5 × 71mixed24.7 µs54.8 µs
22882^4 × 11 × 13mixed12.6 µs10.6 µs
23042^8 × 3^2smooth6.4 µs6.5 µs
23202^4 × 5 × 29mixed17.5 µs23.6 µs
23362^5 × 73mixed19.8 µs34.6 µs
23522^4 × 3 × 7^2mixed8.0 µs8.7 µs
23682^6 × 37mixed17.7 µs46.0 µs
23842^4 × 149mixed27.5 µs49.8 µs
24002^5 × 3 × 5^2smooth7.9 µs7.3 µs
24162^4 × 151mixed24.1 µs41.4 µs
24322^7 × 19mixed14.8 µs20.0 µs
24482^4 × 3^2 × 17mixed13.3 µs19.9 µs
24642^5 × 7 × 11mixed7.1 µs10.1 µs
24802^4 × 5 × 31mixed20.2 µs26.2 µs
24962^6 × 3 × 13mixed12.0 µs8.6 µs
25122^4 × 157mixed31.0 µs39.8 µs
25282^5 × 79mixed32.1 µs43.1 µs
25442^4 × 3 × 53mixed31.4 µs63.7 µs
25602^9 × 5smooth6.9 µs6.5 µs
25762^4 × 7 × 23mixed18.1 µs24.9 µs
25922^5 × 3^4smooth6.9 µs11.5 µs
26082^4 × 163mixed22.5 µs47.3 µs
26242^6 × 41mixed21.6 µs44.7 µs
26402^4 × 3 × 5 × 11mixed9.7 µs8.9 µs
26562^5 × 83mixed29.2 µs71.9 µs
26722^4 × 167mixed29.2 µs63.4 µs
26882^7 × 3 × 7mixed7.6 µs10.6 µs
27042^4 × 13^2mixed29.1 µs12.1 µs
27202^5 × 5 × 17mixed15.6 µs20.3 µs
27362^4 × 3^2 × 19mixed16.3 µs23.2 µs
27522^6 × 43mixed25.7 µs37.4 µs
27682^4 × 173mixed29.8 µs62.7 µs
27842^5 × 3 × 29mixed20.2 µs28.8 µs
28002^4 × 5^2 × 7mixed9.2 µs8.9 µs
28162^8 × 11mixed10.4 µs10.3 µs
28322^4 × 3 × 59mixed55.0 µs46.1 µs
28482^5 × 89mixed25.0 µs68.9 µs
28642^4 × 179mixed29.8 µs63.6 µs
28802^6 × 3^2 × 5smooth8.5 µs11.6 µs
28962^4 × 181mixed25.9 µs52.0 µs
29122^5 × 7 × 13mixed14.4 µs12.1 µs
29282^4 × 3 × 61mixed25.1 µs45.3 µs
29442^7 × 23mixed20.7 µs28.0 µs
29602^4 × 5 × 37mixed23.1 µs56.2 µs
29762^5 × 3 × 31mixed22.9 µs32.2 µs
29922^4 × 11 × 17mixed19.1 µs26.7 µs
30082^6 × 47mixed47.7 µs49.0 µs
30242^4 × 3^3 × 7mixed9.3 µs11.8 µs
30402^5 × 5 × 19mixed19.5 µs23.7 µs
30562^4 × 191mixed48.4 µs63.7 µs
30722^10 × 3smooth9.2 µs9.5 µs
30882^4 × 193mixed25.2 µs53.6 µs
31042^5 × 97mixed27.2 µs45.2 µs
31202^4 × 3 × 5 × 13mixed17.7 µs10.8 µs
31362^6 × 7^2mixed10.6 µs10.5 µs
31522^4 × 197mixed33.2 µs48.1 µs
31682^5 × 3^2 × 11mixed12.6 µs13.2 µs
31842^4 × 199mixed27.5 µs48.2 µs
32002^7 × 5^2smooth9.6 µs10.1 µs
32162^4 × 3 × 67mixed30.3 µs64.2 µs
32322^5 × 101mixed38.0 µs48.3 µs
32482^4 × 7 × 29mixed24.7 µs36.2 µs
32642^6 × 3 × 17mixed19.7 µs25.1 µs
32802^4 × 5 × 41mixed28.0 µs55.0 µs
32962^5 × 103mixed45.6 µs76.1 µs
33122^4 × 3^2 × 23mixed23.2 µs32.4 µs
33282^8 × 13mixed17.8 µs12.9 µs
33442^4 × 11 × 19mixed22.6 µs31.4 µs
33602^5 × 3 × 5 × 7mixed13.2 µs12.7 µs
33762^4 × 211mixed34.0 µs82.3 µs
33922^6 × 53mixed41.7 µs87.7 µs
34082^4 × 3 × 71mixed37.0 µs83.6 µs
34242^5 × 107mixed36.0 µs78.2 µs
34402^4 × 5 × 43mixed32.6 µs46.8 µs
34562^7 × 3^3smooth10.3 µs16.6 µs
34722^4 × 7 × 31mixed28.1 µs39.3 µs
34882^5 × 109mixed30.0 µs65.2 µs
35042^4 × 3 × 73mixed32.7 µs53.5 µs
35202^6 × 5 × 11mixed12.3 µs14.3 µs
35362^4 × 13 × 17mixed40.9 µs31.6 µs
35522^5 × 3 × 37mixed26.6 µs69.2 µs
35682^4 × 223mixed40.2 µs93.3 µs
35842^9 × 7mixed10.4 µs13.2 µs
36002^4 × 3^2 × 5^2smooth12.6 µs17.8 µs
36162^5 × 113mixed31.5 µs75.4 µs
36322^4 × 227mixed41.2 µs79.0 µs
36482^6 × 3 × 19mixed22.8 µs29.6 µs
36642^4 × 229mixed53.2 µs81.5 µs
36802^5 × 5 × 23mixed27.1 µs32.8 µs
36962^4 × 3 × 7 × 11mixed14.8 µs14.2 µs
37122^7 × 29mixed28.1 µs40.9 µs
37282^4 × 233mixed65.2 µs91.8 µs
37442^5 × 3^2 × 13mixed19.1 µs16.0 µs
37602^4 × 5 × 47mixed61.4 µs60.6 µs
37762^6 × 59mixed73.9 µs64.0 µs
37922^4 × 3 × 79mixed46.7 µs64.6 µs
38082^5 × 7 × 17mixed22.6 µs31.4 µs
38242^4 × 239mixed54.9 µs80.1 µs
38402^8 × 3 × 5smooth13.0 µs15.7 µs
38562^4 × 241mixed35.7 µs55.3 µs
38722^5 × 11^2mixed15.0 µs20.1 µs
38882^4 × 3^5smooth12.6 µs19.3 µs
39042^6 × 61mixed33.8 µs65.1 µs
39202^4 × 5 × 7^2mixed14.7 µs12.9 µs
39362^5 × 3 × 41mixed33.2 µs65.4 µs
39522^4 × 13 × 19mixed41.9 µs36.5 µs
39682^7 × 31mixed32.2 µs45.0 µs
39842^4 × 3 × 83mixed47.3 µs99.4 µs
40002^5 × 5^3smooth14.8 µs13.1 µs
40162^4 × 251mixed49.8 µs66.6 µs
40322^6 × 3^2 × 7mixed13.6 µs14.6 µs
40482^4 × 11 × 23mixed30.5 µs41.3 µs
40642^5 × 127mixed36.3 µs61.7 µs
40802^4 × 3 × 5 × 17mixed24.6 µs31.8 µs
40962^12power of two26.2 µs16.0 µs