Code Monkey home page Code Monkey logo

cgtuebingen / ggnn Goto Github PK

View Code? Open in Web Editor NEW
135.0 25.0 19.0 967 KB

GGNN: State of the Art Graph-based GPU Nearest Neighbor Search

Home Page: https://uni-tuebingen.de/fakultaeten/mathematisch-naturwissenschaftliche-fakultaet/fachbereiche/informatik/lehrstuehle/computergrafik/lehrstuhl/veroeffentlichungen/ggnn-graph-based-gpu-nearest-neighbor-search/

License: MIT License

CMake 1.90% Shell 0.07% C++ 4.10% Dockerfile 0.15% Makefile 0.02% Cuda 93.75%
cuda ann nearest-neighbor-search gpu approximate-nearest-neighbor-search vector-database vector-db

ggnn's People

Contributors

grohf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ggnn's Issues

Other Datasets

Hello,

I was wondering if you could provide a link to the other datasets used in the paper (specifically GloVe, NYTimes, deep1B). They don't seem to exist in the texmex corpus. Are there scripts you used to preprocess the data from other sources?

How to get the high-quality knn graph without refinement as mentioned in the paper?

Hello! Thanks for your excellent work. I'm trying your demo. I am confused that I can't get the high-quality knn graph without refinement as mentioned in the paper. For SIFT1M, I can only get C@10 of 0.5022 when KBuild=62 (Any larger KBuild will lead to an illegal memory error).

It is mentioned in the paper that your algorithm achieves C@10 of 0.987 without refinement. Please kindly tell me that how do I get that result. Besides, I used the getGraph function to export the graph, please let me know if I get something wrong. Thank you again!

How to you calculate the recall rate?

Hi,

When I dig into your implementation, I do not understand how the recall rate is computed?
image
What do these two variables rKQuery_including_duplicates and cKQuery_including_duplicates mean? Which one should be the recall rate?

link problem for glog

Hi,

I'm trying to run your code and follow your command in readme, I got link error regarding 3rdparty glog library shown below,
image

What's the reason of it? How can I resolve it?

Questions

Hello, I am very interested in your wonderful work! After reading your paper, I have some questions to ask.

  1. You put emphasize on the construction time reduction, but how is that achieved, you did not clarify it, it is more like a partition-and-merge way, partition is fast because the subgraphs are small, and when we merge the subgraphs, I think in HNSW, each node has to perform a query to link the neighbors, but here you sample some vertices as the top layer to do this, is this the main reason for reducing the construction time?
  2. How to add symmetric links after we have a KNN-graph? I know the rule in paper section4.3 that how x and z connected, but how we get such candidates?
  3. I am a little bit confused how you perform queries, which is mentioned in paper section 4.1(last paragraph), 4.2, 4.5, do we have to go down from the top layer to bottom layer? Actually in these three sections, you are saying different things for how to perform queries...
  4. Why your algorithm is suitable for GPU? Or I say why HNSW-gpu(if we reimplement hnsw on gpu) is less efficient?
  5. You did not report your memory consumption, but I think it is huge even if you have 8 GPUs... I assume 8GPUs have about 100GB device memory, how does it run on 1B data?

How many shared memory does this kernel use ?

Hello! I am insterest in the performance. Could you provide the performance that also considering copy queries to the device and copy results to the host?
Have you benchmarked it on other GPU?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.