TL;DR
This paper introduces a new vectorizable search algorithm for sorted floating point arrays that achieves constant time complexity per search, significantly outperforming traditional binary search especially in batch processing scenarios.
Contribution
It presents a novel indexing-based vectorizable search method applicable to many array partitions, enabling O(1) search time after initial setup, with demonstrated high performance gains.
Findings
Up to 100x faster search throughput compared to classic binary search.
Effective vectorization leveraging SIMD instructions.
Applicable to a wide range of array partitions with initial overhead.
Abstract
Given an array of strictly ordered floating point numbers and a floating point number in the interval , a common problem is to find the index of the interval containing . This problem arises for instance in the context of spline interpolation or the computation of empirical probability distribution from empirical data. Often it needs to be solved for a large number of different values and the same array , which makes it worth investing resources upfront in pre-processing the array with the goal of speeding up subsequent search operations. In some cases the values to be processed are known simultaneously in blocks of size , which offers the opportunity to solve the problem vectorially, exploiting the parallel capabilities of modern CPUs. The common solution is to sequentially invoke times the well known binary search…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
