Skip to content

Conversation

@saghen
Copy link
Owner

@saghen saghen commented Aug 7, 2025

The Matcher API should be the main entrypoint for consumers. We want to do as much work up front as possible

  • Copy strings to predefined 16 byte aligned widths ahead of time
    • Loop unrolling + faster SIMD loading
  • Perform interleave every iteration
    • Allows us to change the number of items we operate on but requires converting score matrices to an array, TBD how slow this will be
    • If we didn't do this, how would we handle filtering? Perhaps we could do scatter/gather to combine SIMDs to only the unfiltered ones. We would then get the same performance as the one_shot matcher, or better because of the string copy

Currently the copying, prefiltering, smith waterman, and storing scores have been implemented. We don't yet calculate typos, support incremental matching or push matches to the output. Preliminary benchmarks show 67ms vs 39ms on the chromium bench. By the end of this PR, I'm hoping to be ~20% away from the one shot bench.

Shout out ii14 for all the ideas :)

@saghen saghen marked this pull request as draft August 7, 2025 19:35
@saghen saghen mentioned this pull request Oct 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants