rapidfuzz-cpp
rapidfuzz-cpp copied to clipboard
Simd support
simd leads to a large improvement in performance: Old
BM_LCS<8> 93868375 ns 93704140 ns 7 InvRate=36.6032ns Rate=27.32M/s
BM_LCS<16> 122188164 ns 121960772 ns 6 InvRate=47.6409ns Rate=20.9904M/s
BM_LCS<32> 176089869 ns 175789716 ns 4 InvRate=68.6679ns Rate=14.5629M/s
BM_LCS<64> 287413902 ns 286946848 ns 2 InvRate=112.089ns Rate=8.92151M/s
Old with CachedLCSseq
BM_LCS_Cached<8> 33049881 ns 32978438 ns 22 InvRate=12.8822ns Rate=77.6265M/s
BM_LCS_Cached<16> 45528176 ns 45429334 ns 16 InvRate=17.7458ns Rate=56.3513M/s
BM_LCS_Cached<32> 77294421 ns 77122950 ns 9 InvRate=30.1262ns Rate=33.1938M/s
BM_LCS_Cached<64> 147164610 ns 146825857 ns 5 InvRate=57.3539ns Rate=17.4356M/s
SSE2
BM_LCS_SIMD<8> 515846 ns 513663 ns 1408 InvRate=802.599ps Rate=1.24595G/s
BM_LCS_SIMD<16> 1542583 ns 1536481 ns 467 InvRate=2.40075ns Rate=416.536M/s
BM_LCS_SIMD<32> 5359830 ns 5324692 ns 137 InvRate=8.31983ns Rate=120.195M/s
BM_LCS_SIMD<64> 20594376 ns 20329466 ns 35 InvRate=31.7648ns Rate=31.4814M/s
AVX2
BM_LCS_SIMD<8> 227198 ns 226702 ns 3095 InvRate=354.223ps Rate=2.82308G/s
BM_LCS_SIMD<16> 691876 ns 690248 ns 1028 InvRate=1078.51ps Rate=927.203M/s
BM_LCS_SIMD<32> 2384991 ns 2379173 ns 303 InvRate=3.71746ns Rate=269.001M/s
BM_LCS_SIMD<64> 8723367 ns 8705924 ns 82 InvRate=13.603ns Rate=73.5132M/s