/coolfindpattern

rust signature finding library using SIMD

Primary LanguageRustGNU Affero General Public License v3.0AGPL-3.0

coolfindpattern

an updated version of my findpattern crate, this time using modern SIMD.

You have to enable SIMD instruction sets in your .cargo/config.toml.

Benchmarks were performed on the following machine:

  • AMD Ryzen 7 5800X3D boosting to ~4.3GHz
  • 4*16 GB DDR4-3200 Dual-Channel CL16 (51.2GiB/s theoretical maximum)
  • (Other specs don't matter)

Measurements run on a single core only.

Average Time taken (needle=10byte, haystack=1GiB)

Os O1 O2 O3
Old Impl 1000ms 4008ms 391.7ms 273.1ms
New SSE2 92.3ms 297.7ms 81.5ms 94.6ms
New AVX2 64.3ms 191ms 66ms 78.5ms

Average Speed in GiB/s (needle=10byte, haystack=1GiB)

Os O1 O2 O3
Old Impl 0.98GiB/s 0.249GiB/s 2.55GiB/s 3.6GiB/s
New SSE2 10.8GiB/s 3.36GiB/s 12.34GiB/s 10.57GiB/s
New AVX2 15.5GiB/s 5.23GiB/s 15.1GiB/s 12.7GiB/s