QuState / PhastFT

A high-performance, "quantum-inspired" Fast Fourier Transform (FFT) library written in pure and safe Rust.
Apache License 2.0
193 stars 8 forks source link

Update accuracy of memory usage for `f32`/`f64` in readme #31

Open smu160 opened 2 months ago

smu160 commented 2 months ago

@Shnatsel

Given the results for f32 and f64 memory usage provided by a third party benchmark repo, should we consider updating the "2x lower memory usage" claim in the readme?

To make it easier to read the memory usage data, I took out the other columns to do with timing for both tables:

f32

Sequence length rustfft memory phastft memory
8 368 B 32 B
16 624 B 96 B
32 1.152 KB 224 B
64 3.808 KB 480 B
128 6.368 KB 992 B
256 11.48 KB 2.016 KB
512 21.72 KB 4.064 KB
1024 42.20 KB 8.160 KB
2048 83.16 KB 16.35 KB
4096 165.0 KB 32.73 KB
8192 328.9 KB 65.50 KB
16384 656.6 KB 131.0 KB
32768 1.311 MB 262.1 KB
65536 2.622 MB 524.2 KB
131072 5.244 MB 1.048 MB
262144 10.48 MB 2.097 MB
524288 20.97 MB 4.194 MB
1048576 41.94 MB 8.388 MB
2097152 83.88 MB 16.77 MB
4194304 167.7 MB 33.55 MB
8388608 335.5 MB 67.10 MB

f64

Sequence length rustfft memory phastft memory
8 320 B 64 B
16 480 B 192 B
32 816 B 448 B
64 3.968 KB 960 B
128 7.040 KB 1.984 KB
256 13.18 KB 4.032 KB
512 25.47 KB 8.128 KB
1024 50.04 KB 16.32 KB
2048 99.20 KB 32.70 KB
4096 197.5 KB 65.47 KB
8192 394.1 KB 131.0 KB
16384 787.3 KB 262.0 KB
32768 1.573 MB 524.2 KB
65536 3.146 MB 1.048 MB
131072 6.292 MB 2.097 MB
262144 12.58 MB 4.194 MB
524288 25.16 MB 8.388 MB
1048576 50.33 MB 16.77 MB
2097152 100.6 MB 33.55 MB
4194304 201.3 MB 67.10 MB
8388608 402.6 MB 134.2 MB

Just eyeballing the results, it seems PhastFT has ≈ 5x lower memory usage for f643x lower memory usage for f64. Maybe it would be better compute the ratio of rustfft to phastft memory usage for all sequence sizes and then take the average/median/min? Perhaps we should re-run the benchmarks on the original benchmark machine before anything.

Curious to hear your thoughts!