Skip to content

Commit

Permalink
Add bench system config info
Browse files Browse the repository at this point in the history
  • Loading branch information
smu160 committed Feb 4, 2024
1 parent d3c40cb commit 18e91f4
Showing 1 changed file with 32 additions and 6 deletions.
38 changes: 32 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
PhastFT is a high-performance, "quantum-inspired" Fast Fourier
Transform (FFT) library written in pure Rust.
Despite its simplicity, its performance is competitive with FFTW.
On large inputs it outperforms even the fastest Rust FFT libraries, including [RustFFT](https://crates.io/crates/rustfft/).
On large inputs it outperforms even the fastest Rust FFT libraries,
including [RustFFT](https://crates.io/crates/rustfft/).

## Features

Expand All @@ -26,9 +27,9 @@ On large inputs it outperforms even the fastest Rust FFT libraries, including [R

## Planned features

- Runtime CPU feature detection
- More multi-threading
- More work on cache-optimal FFT
- Runtime CPU feature detection
- More multi-threading
- More work on cache-optimal FFT

## How is it so fast?

Expand Down Expand Up @@ -99,10 +100,35 @@ PhastFT is benchmarked against several other FFT libraries. Scripts to reproduce
available [here](benches).

<p align="center">
<img src="assets/py_benchmarks_bar_plot.png" width="500" title="PhastFT vs. NumPy FFT vs. pyFFTW" alt="PhastFT vs. NumPy FFT vs. pyFFTW">
<img src="assets/benchmarks_bar_plot.png" width="500" title="PhastFT vs. RustFFT vs. FFTW3" alt="PhastFT vs. RustFFT vs. FFTW3">
<img src="assets/py_benchmarks_bar_plot.png" width="400" title="PhastFT vs. NumPy FFT vs. pyFFTW" alt="PhastFT vs. NumPy FFT vs. pyFFTW">
<img src="assets/benchmarks_bar_plot.png" width="400" title="PhastFT vs. RustFFT vs. FFTW3" alt="PhastFT vs. RustFFT vs. FFTW3">
</p>

*All benchmark results were produced on the following system configuration*

| | |
|----------------------|-------------------------------------------------------------------------------------------------|
| **CPU** | AMD Ryzen 9 7950X (SMT enabled) |
| | |
| **CPU Features** | |
| L1d Cache | 512 KiB (16 instances) |
| L1i Cache | 512 KiB (16 instances) |
| L2 Cache | 16 MiB (16 instances) |
| L3 Cache | 64 MiB (2 instances) |
| | |
| **Memory** | |
| /0/f/0 | memory 64GiB System Memory |
| /0/f/1 | memory 32GiB DIMM Synchronous Unbuffered (Unregistered) 6000 MHz (0.2 ns) |
| /0/f/3 | memory 32GiB DIMM Synchronous Unbuffered (Unregistered) 6000 MHz (0.2 ns) |
| | |
| **OS** | Linux 7950x 6.1.0-17-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.69-1 (2023-12-30) x86_64 GNU/Linux |
| |
| **Rust** | |
| Installed Toolchains | stable-x86_64-unknown-linux-gnu |
| | nightly-x86_64-unknown-linux-gnu (default) |
| Active Toolchain | nightly-x86_64-unknown-linux-gnu (default) |
| Rustc Version | 1.77.0-nightly (5bd5d214e 2024-01-25) |

## Contributing

Contributions to PhastFT are welcome! If you find any issues or have improvements to suggest, please open an issue or
Expand Down

0 comments on commit 18e91f4

Please sign in to comment.