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.58 s · 253 sizes

RustFFTFFTW

Input breakdown

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