-
Notifications
You must be signed in to change notification settings - Fork 446
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add SIMD accelerated multiple pattern search. #231
Conversation
Note that this PR is blocked on a new release of @killercup I may be able to carve out some interesting projects worth mentoring from this. I left quite a number of TODOs. Feel like learning SIMD? :-) |
Relevant benchmarks:
|
Cool! Thank you for thinking of me! I'll have a look at this :) |
Fiddling with this a bit I noticed (aside from the stuff I did in #232) that there seems to be a genuine underflow exposed by the fowler::match_basic_81 test case: In Edit: I added a simple check to prevent the underflow in #232. |
@killercup Thanks! I've fixed that in this PR. (I didn't see your edit.) |
36faa2c
to
6f2bb0f
Compare
This uses the "Teddy" algorithm, as learned from the Hyperscan regular expression library: https://01.org/hyperscan This support optional, subject to the following: 1. A nightly compiler. 2. Enabling the `simd-accel` feature. 3. Adding `RUSTFLAGS="-C target-feature=+ssse3"` when compiling.
@llogiq FYI, this PR impacts the |
This uses the "Teddy" algorithm, as learned from the Hyperscan regular
expression library.
This support is optional, subject to the following:
simd-accel
feature.RUSTFLAGS="-C target-feature=+ssse3"
when compiling.