Method for approximate k-nearest-neighbor search on parallel hardware accelerators

US11645585B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11645585-B2
Application numberUS-202217582267-A
CountryUS
Kind codeB2
Filing dateJan 24, 2022
Priority dateNov 18, 2015
Publication dateMay 9, 2023
Grant dateMay 9, 2023

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

In one embodiment, a processor of a computing device receives a query. The computing device may compare a centroid of each of a plurality of clusters to the query such that a subset of the plurality of clusters is selected, each of the plurality of clusters having a set of data points. An assignment of the subset of the plurality of clusters may be communicated to a hardware accelerator of the computing device. A plurality of threads of the hardware accelerator of the computing device may generate one or more distance tables that store results of intermediate computations corresponding to the query and the subset of the plurality of clusters. The distance tables may be stored in shared memory of the hardware accelerator. A plurality of threads of the hardware accelerator may determine a plurality of data points using the distance tables. The processor may provide query results pertaining to at least a portion of the plurality of data points.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, implemented at least in part via a processor, comprising: selecting quantization parameters based, at least in part, on a size of shared memory of a hardware accelerator of a computing device, wherein the quantization parameters comprise coordinate and associated length information; generating one or more distance tables based, at least in part, on at least one quantization parameter of the quantization parameters, wherein the one or more distance tables store results of computations corresponding to a query data point and a subset of a plurality of clusters determined based, at least in part, on the query data point; and storing the one or more distance tables in the shared memory of the hardware accelerator. 2. The method as recited in claim 1 , comprising: determining, for each of the subset of the plurality of clusters, a query residual; and communicating the query residual for each of the subset of the plurality of clusters to the hardware accelerator. 3. The method as recited in claim 1 , wherein the generating the one or more distance tables is performed, at least in part, by a plurality of threads of the hardware accelerator. 4. The method as recited in claim 1 , comprising: determining a plurality of data points using the one or more distance tables. 5. The method as recited in claim 1 , wherein the selecting the quantization parameters is performed, at least in part, by a machine learning process. 6. The method as recited in claim 1 , wherein the one or more distance tables include a plurality of distance tables, each of the plurality of distance tables corresponding to a cluster in the subset of the plurality of clusters. 7. The method as recited in claim 6 , wherein the hardware accelerator includes a plurality of multiprocessors, the method comprising: generating, by each of the plurality of multiprocessors, a corresponding one of the plurality of distance tables. 8. A computer readable storage medium comprising instructions that when executed by a processor perform operations, the operations comprising: generating one or more distance tables, wherein the one or more distance tables store results of computations corresponding to a subset of a plurality of clusters determined based, at least in part, on a query data point; determining a plurality of data points using the one or more distance tables; providing one or more query results pertaining to at least a portion of the plurality of data points; subdividing a data point in the subset of the plurality of clusters into a plurality of subvectors; quantizing the plurality of subvectors to generate a compressed data point, wherein a coordinate of the compressed data point corresponds to a subvector of the plurality of subvectors; and mapping the plurality of subvectors to one or more coordinates of the compressed data point. 9. The computer readable storage medium as recited in claim 8 , the operations comprising: determining, for each of the subset of the plurality of clusters, a query residual; and communicating the query residual for each of the subset of the plurality of clusters to a hardware accelerator of a computing device. 10. The computer readable storage medium as recited in claim 8 , wherein the generating the one or more distance tables is performed, at least in part, by a plurality of threads of a hardware accelerator of a computing device. 11. The computer readable storage medium as recited in claim 8 , wherein the determining the plurality of data points is performed, at least in part, by a plurality of threads of a hardware accelerator of a computing device. 12. The computer readable storage medium as recited in claim 8 , wherein the generating one or more distance tables is performed based, at least in part, on quantization parameters. 13. The computer readable storage medium as recited in claim 8 , wherein the one or more distance tables include a plurality of distance tables, each of the plurality of distance tables corresponding to a cluster in the subset of the plurality of clusters. 14. The computer readable storage medium as recited in claim 13 , the operations comprising: storing the one or more distance tables in shared memory of a hardware accelerator of a computing device; and generating, by each of a plurality of multiprocessors, a corresponding one of the plurality of distance tables. 15. A system comprising: a processor; and memory comprising instructions that when executed by the processor perform operations, the operations comprising: selecting quantization parameters based, at least in part, on a size of shared memory of a hardware accelerator of a computing device; generating one or more distance tables based, at least in part, on at least one quantization parameter of the quantization parameters, wherein the one or more distance tables store results of computations corresponding to a query data point and a subset of a plurality of clusters determined based, at least in part, on the query data point; and subdividing a data point in the subset of the plurality of clusters into a plurality of subvectors. 16. The system as recited in claim 15 , the operations comprising: quantizing the plurality of subvectors to generate a compressed data point, wherein a coordinate of the compressed data point corresponds to a subvector of the plurality of subvectors. 17. The system as recited in claim 16 , the operations comprising: mapping the plurality of subvectors to one or more coordinates of the compressed data point. 18. The system as recited in claim 15 , the operations comprising: determining a plurality of data points using the one or more distance tables. 19. The system as recited in claim 15 , wherein the selecting the quantization parameters is performed, at least in part, by a machine learning process. 20. The system as recited in claim 15 , wherein the hardware accelerator comprises a graphics processing unit (GPU).

Assignees

Inventors

Classifications

  • Hardware or software architectures specially adapted for image or video understanding · CPC title

  • Distances to closest patterns, e.g. nearest neighbour classification · CPC title

  • Complex mathematical operations {(function generation by table look-up G06F1/03; evaluation of elementary functions by calculation G06F7/544)} · CPC title

  • G06N20/00Primary

    Machine learning · CPC title

  • using classification, e.g. of video objects · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11645585B2 cover?
In one embodiment, a processor of a computing device receives a query. The computing device may compare a centroid of each of a plurality of clusters to the query such that a subset of the plurality of clusters is selected, each of the plurality of clusters having a set of data points. An assignment of the subset of the plurality of clusters may be communicated to a hardware accelerator of the …
Who is the assignee on this patent?
Verizon Patent & Licensing Inc
What technology area does this patent fall under?
Primary CPC classification G06N20/00. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 09 2023 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 6 related publications on this page (citations in our corpus or others sharing the same primary CPC).