14 lines
996 B
Markdown
14 lines
996 B
Markdown
# optimiz-rs v2.0 benchmark
|
||||
|
|
|
|||
|
|
Best wall-clock over a few runs. Single-threaded. Workloads chosen to be intrinsically loopy / sequential -- the regime where the Rust core delivers a real speedup over a NumPy reference.
|
|||
|
|
|
|||
|
|
Workloads that are fully vectorisable in NumPy (e.g. drift updates for an N-particle SDE with no callback) are not included: a tight NumPy loop on contiguous arrays is hard to beat from Rust through a PyO3 callback boundary.
|
|||
|
|
|
|||
|
|
| Workload | Pure Python / NumPy | optimiz-rs (Rust) | Speedup |
|
|||
|
|
|---|---:|---:|---:|
|
|||
|
|
| HMM Baum-Welch (2 states, 5_000 obs, 10 iters) | 970.94 ms | 14.34 ms | ** 67.7×** |
|
|||
|
|
| Differential evolution (Rastrigin d=5, 50 iters x 20 pop) | 417.45 ms | 30.03 ms | ** 13.9×** |
|
|||
|
|
| Path signature (T=300, d=3, depth=3) | 11.07 ms | 0.99 ms | ** 11.2×** |
|
|||
|
|
| MCMC random-walk MH (5000 samples, d=2) | 35.41 ms | 20.24 ms | ** 1.7×** |
|
|||
|
|
| Hawkes process (T=100.0, mu=1.0, alpha=0.6, beta=1.2) | 2.75 ms | 0.83 ms | ** 3.3×** |
|