ashvardanian / ashvardanian/StringZilla
Adding reverse-order SWAR search backends
- Dominant language
- C
- Stars
- 3.6k
- Forks
- 135
- PR merge metrics
- No merged PRs in 30d
Description
StringZilla currently implements several SWAR search optimizations for needles of different length: `_sz_find_2byte_serial`, `_sz_find_3byte_serial`, `_sz_find_4byte_serial`. Those currently lack reverse-order variants and should be implemented to guarantee the same level of throughput on non-SIMD devices in reverse-order operations.
Implementing those is fairly strait-forward, and can be a great first issue for people used to C programming.
Contributor guide
Research direction
Locate the existing _sz_find_2byte_serial, _sz_find_3byte_serial, and _sz_find_4byte_serial SWAR search implementations and their reverse-order callers. Use the forward variants to understand the expected behavior, then verify that reverse-order operations have corresponding implementations for all three needle lengths and preserve non-SIMD search throughput.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- performance, search
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100