https://github.com/wojciechmula/sse4-strstr
SIMD (SWAR/SSE/SSE4/AVX2/AVX512F/ARM Neon) of Karp-Rabin algorithm's modification
https://github.com/wojciechmula/sse4-strstr
avx2 avx512 neon sse string-manipulation
Last synced: 2 months ago
JSON representation
SIMD (SWAR/SSE/SSE4/AVX2/AVX512F/ARM Neon) of Karp-Rabin algorithm's modification
- Host: GitHub
- URL: https://github.com/wojciechmula/sse4-strstr
- Owner: WojciechMula
- License: bsd-2-clause
- Created: 2015-04-05T17:42:22.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2022-01-04T19:22:10.000Z (over 3 years ago)
- Last Synced: 2025-04-09T23:16:09.975Z (2 months ago)
- Topics: avx2, avx512, neon, sse, string-manipulation
- Language: C++
- Homepage: http://0x80.pl/articles/simd-strfind.html
- Size: 112 KB
- Stars: 247
- Watchers: 23
- Forks: 29
- Open Issues: 8
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
================================================================================
SIMD-friendly algorithms for substring searching
================================================================================Sample programs for article "SIMD-friendly algorithms for substring searching"
(http://0x80.pl/articles/simd-strfind.html).The **root directory** contains C++11 procedures implemented using intrinsics
for SSE, SSE4, AVX2, AVX512F, AVX512BW and ARM Neon (both ARMv7 and ARMv8).The subdirectory **original** contains 32-bit programs with inline assembly,
written in 2008 for another article__.__ http://0x80.pl/articles/sse4_substring_locate.html
Usage
------------------------------------------------------------------------To run unit and validation tests type ``make test_ARCH``, to run
performance tests type ``make run_ARCH``. Value ``ARCH`` selectes
the CPU architecture:* sse4,
* avx2,
* avx512f,
* avx512bw,
* arm,
* aarch64.Performance results
------------------------------------------------------------------------The subdirectory ``results`` contains raw timings from various computers.