Performance tracking issue
vadixidav opened this issue · comments
Performance is currently only beating linear (which is incredibly fast on modern processors) for exact search at > 1M features. This is probably beatable, but it will require some optimizations. Below is the list of optimizations and their issues that need to be made:
k-NN
- Use
packed_simd
to speed upFeatureHeap::add
- Convert
search
module to use a hand-optimized iterator for each level of the tree - Investigate if the
search
module can be sped up using SIMD or bit twiddling - Implement more SIMD optimizations upstream in
swar
After closing #7 I am now getting the following:
neighbors/nearest_1_hwt_maxerr_0/16777216
time: [17.479 ms 17.687 ms 17.849 ms]
This is a reasonable speedup over linear at 2^24
features.