rapidfuzz-cpp icon indicating copy to clipboard operation
rapidfuzz-cpp copied to clipboard

Simd support

Open maxbachmann opened this issue 3 years ago • 1 comments

maxbachmann avatar Jun 05 '22 15:06 maxbachmann

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

maxbachmann avatar Jun 26 '22 21:06 maxbachmann