├── .clang-format ├── .clangd ├── .editorconfig ├── .github └── workflows │ └── build-python-wheels.yaml ├── .gitignore ├── .readthedocs.yaml ├── CMakeLists.txt ├── LICENSE ├── README.md ├── cmake └── Config.cmake.in ├── docs ├── Makefile ├── requirements.txt └── source │ ├── FAQ.rst │ ├── ann.rst │ ├── benchmarking.rst │ ├── conf.py │ ├── index.rst │ ├── install.rst │ ├── usage_cpp.rst │ └── usage_python.rst ├── examples ├── cpp-and-cuda │ ├── CMakeLists.txt │ ├── README.md │ ├── ggnn_benchmark.cpp │ ├── ggnn_main.cpp │ ├── ggnn_main_gpu_data.cu │ └── ggnn_main_multi_gpu.cpp └── python │ ├── ggnn_pytorch.py │ ├── ggnn_pytorch_gpu_data.py │ ├── ggnn_pytorch_multi_gpu.py │ ├── sift1m_fvecs.py │ └── sift1m_hdf5.py ├── include └── ggnn │ ├── base │ ├── data.cuh │ ├── dataset.cuh │ ├── def.h │ ├── eval.h │ ├── fwd.h │ ├── ggnn.cuh │ ├── gpu_instance.cuh │ ├── graph.h │ ├── graph_config.h │ ├── lib.h │ └── result_merger.h │ ├── construction │ ├── graph_buffer.cuh │ ├── graph_construction.cuh │ ├── merge_layer.cuh │ ├── sym_buffer_merge_layer.cuh │ ├── sym_query_layer.cuh │ ├── top_merge_layer.cuh │ └── wrs_select_layer.cuh │ ├── cuda_utils │ ├── check.cuh │ ├── distance.cuh │ ├── k_best_list.cuh │ ├── simple_knn_cache.cuh │ └── simple_knn_sym_cache.cuh │ └── query │ ├── bf_query_layer.cuh │ ├── query_kernels.cuh │ └── query_layer.cuh ├── pyproject.toml ├── python-src └── ggnn │ └── __init__.py └── src └── ggnn ├── base ├── data.cu ├── dataset.cu ├── eval.cpp ├── ggnn.cu ├── gpu_instance.cu ├── graph.cpp ├── graph_config.cpp └── result_merger.cpp ├── construction ├── graph_buffer.cu ├── graph_construction.cu ├── merge_layer.cu ├── sym_buffer_merge_layer.cu ├── sym_query_layer.cu ├── top_merge_layer.cu └── wrs_select_layer.cu ├── python └── nanobind.cu └── query ├── bf_query_layer.cu ├── query_kernels.cu └── query_layer.cu /.clang-format: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/.clang-format -------------------------------------------------------------------------------- /.clangd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/.clangd -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/.editorconfig -------------------------------------------------------------------------------- /.github/workflows/build-python-wheels.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/.github/workflows/build-python-wheels.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/.gitignore -------------------------------------------------------------------------------- /.readthedocs.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/.readthedocs.yaml -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/CMakeLists.txt -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/README.md -------------------------------------------------------------------------------- /cmake/Config.cmake.in: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/cmake/Config.cmake.in -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/docs/Makefile -------------------------------------------------------------------------------- /docs/requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/docs/requirements.txt -------------------------------------------------------------------------------- /docs/source/FAQ.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/docs/source/FAQ.rst -------------------------------------------------------------------------------- /docs/source/ann.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/docs/source/ann.rst -------------------------------------------------------------------------------- /docs/source/benchmarking.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/docs/source/benchmarking.rst -------------------------------------------------------------------------------- /docs/source/conf.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/docs/source/conf.py -------------------------------------------------------------------------------- /docs/source/index.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/docs/source/index.rst -------------------------------------------------------------------------------- /docs/source/install.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/docs/source/install.rst -------------------------------------------------------------------------------- /docs/source/usage_cpp.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/docs/source/usage_cpp.rst -------------------------------------------------------------------------------- /docs/source/usage_python.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/docs/source/usage_python.rst -------------------------------------------------------------------------------- /examples/cpp-and-cuda/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/examples/cpp-and-cuda/CMakeLists.txt -------------------------------------------------------------------------------- /examples/cpp-and-cuda/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/examples/cpp-and-cuda/README.md -------------------------------------------------------------------------------- /examples/cpp-and-cuda/ggnn_benchmark.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/examples/cpp-and-cuda/ggnn_benchmark.cpp -------------------------------------------------------------------------------- /examples/cpp-and-cuda/ggnn_main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/examples/cpp-and-cuda/ggnn_main.cpp -------------------------------------------------------------------------------- /examples/cpp-and-cuda/ggnn_main_gpu_data.cu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/examples/cpp-and-cuda/ggnn_main_gpu_data.cu -------------------------------------------------------------------------------- /examples/cpp-and-cuda/ggnn_main_multi_gpu.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/examples/cpp-and-cuda/ggnn_main_multi_gpu.cpp -------------------------------------------------------------------------------- /examples/python/ggnn_pytorch.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/examples/python/ggnn_pytorch.py -------------------------------------------------------------------------------- /examples/python/ggnn_pytorch_gpu_data.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/examples/python/ggnn_pytorch_gpu_data.py -------------------------------------------------------------------------------- /examples/python/ggnn_pytorch_multi_gpu.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/examples/python/ggnn_pytorch_multi_gpu.py -------------------------------------------------------------------------------- /examples/python/sift1m_fvecs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/examples/python/sift1m_fvecs.py -------------------------------------------------------------------------------- /examples/python/sift1m_hdf5.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/examples/python/sift1m_hdf5.py -------------------------------------------------------------------------------- /include/ggnn/base/data.cuh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/include/ggnn/base/data.cuh -------------------------------------------------------------------------------- /include/ggnn/base/dataset.cuh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/include/ggnn/base/dataset.cuh -------------------------------------------------------------------------------- /include/ggnn/base/def.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/include/ggnn/base/def.h -------------------------------------------------------------------------------- /include/ggnn/base/eval.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/include/ggnn/base/eval.h -------------------------------------------------------------------------------- /include/ggnn/base/fwd.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/include/ggnn/base/fwd.h -------------------------------------------------------------------------------- /include/ggnn/base/ggnn.cuh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/include/ggnn/base/ggnn.cuh -------------------------------------------------------------------------------- /include/ggnn/base/gpu_instance.cuh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/include/ggnn/base/gpu_instance.cuh -------------------------------------------------------------------------------- /include/ggnn/base/graph.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/include/ggnn/base/graph.h -------------------------------------------------------------------------------- /include/ggnn/base/graph_config.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/include/ggnn/base/graph_config.h -------------------------------------------------------------------------------- /include/ggnn/base/lib.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/include/ggnn/base/lib.h -------------------------------------------------------------------------------- /include/ggnn/base/result_merger.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/include/ggnn/base/result_merger.h -------------------------------------------------------------------------------- /include/ggnn/construction/graph_buffer.cuh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/include/ggnn/construction/graph_buffer.cuh -------------------------------------------------------------------------------- /include/ggnn/construction/graph_construction.cuh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/include/ggnn/construction/graph_construction.cuh -------------------------------------------------------------------------------- /include/ggnn/construction/merge_layer.cuh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/include/ggnn/construction/merge_layer.cuh -------------------------------------------------------------------------------- /include/ggnn/construction/sym_buffer_merge_layer.cuh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/include/ggnn/construction/sym_buffer_merge_layer.cuh -------------------------------------------------------------------------------- /include/ggnn/construction/sym_query_layer.cuh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/include/ggnn/construction/sym_query_layer.cuh -------------------------------------------------------------------------------- /include/ggnn/construction/top_merge_layer.cuh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/include/ggnn/construction/top_merge_layer.cuh -------------------------------------------------------------------------------- /include/ggnn/construction/wrs_select_layer.cuh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/include/ggnn/construction/wrs_select_layer.cuh -------------------------------------------------------------------------------- /include/ggnn/cuda_utils/check.cuh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/include/ggnn/cuda_utils/check.cuh -------------------------------------------------------------------------------- /include/ggnn/cuda_utils/distance.cuh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/include/ggnn/cuda_utils/distance.cuh -------------------------------------------------------------------------------- /include/ggnn/cuda_utils/k_best_list.cuh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/include/ggnn/cuda_utils/k_best_list.cuh -------------------------------------------------------------------------------- /include/ggnn/cuda_utils/simple_knn_cache.cuh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/include/ggnn/cuda_utils/simple_knn_cache.cuh -------------------------------------------------------------------------------- /include/ggnn/cuda_utils/simple_knn_sym_cache.cuh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/include/ggnn/cuda_utils/simple_knn_sym_cache.cuh -------------------------------------------------------------------------------- /include/ggnn/query/bf_query_layer.cuh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/include/ggnn/query/bf_query_layer.cuh -------------------------------------------------------------------------------- /include/ggnn/query/query_kernels.cuh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/include/ggnn/query/query_kernels.cuh -------------------------------------------------------------------------------- /include/ggnn/query/query_layer.cuh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/include/ggnn/query/query_layer.cuh -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/pyproject.toml -------------------------------------------------------------------------------- /python-src/ggnn/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/python-src/ggnn/__init__.py -------------------------------------------------------------------------------- /src/ggnn/base/data.cu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/src/ggnn/base/data.cu -------------------------------------------------------------------------------- /src/ggnn/base/dataset.cu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/src/ggnn/base/dataset.cu -------------------------------------------------------------------------------- /src/ggnn/base/eval.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/src/ggnn/base/eval.cpp -------------------------------------------------------------------------------- /src/ggnn/base/ggnn.cu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/src/ggnn/base/ggnn.cu -------------------------------------------------------------------------------- /src/ggnn/base/gpu_instance.cu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/src/ggnn/base/gpu_instance.cu -------------------------------------------------------------------------------- /src/ggnn/base/graph.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/src/ggnn/base/graph.cpp -------------------------------------------------------------------------------- /src/ggnn/base/graph_config.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/src/ggnn/base/graph_config.cpp -------------------------------------------------------------------------------- /src/ggnn/base/result_merger.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/src/ggnn/base/result_merger.cpp -------------------------------------------------------------------------------- /src/ggnn/construction/graph_buffer.cu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/src/ggnn/construction/graph_buffer.cu -------------------------------------------------------------------------------- /src/ggnn/construction/graph_construction.cu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/src/ggnn/construction/graph_construction.cu -------------------------------------------------------------------------------- /src/ggnn/construction/merge_layer.cu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/src/ggnn/construction/merge_layer.cu -------------------------------------------------------------------------------- /src/ggnn/construction/sym_buffer_merge_layer.cu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/src/ggnn/construction/sym_buffer_merge_layer.cu -------------------------------------------------------------------------------- /src/ggnn/construction/sym_query_layer.cu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/src/ggnn/construction/sym_query_layer.cu -------------------------------------------------------------------------------- /src/ggnn/construction/top_merge_layer.cu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/src/ggnn/construction/top_merge_layer.cu -------------------------------------------------------------------------------- /src/ggnn/construction/wrs_select_layer.cu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/src/ggnn/construction/wrs_select_layer.cu -------------------------------------------------------------------------------- /src/ggnn/python/nanobind.cu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/src/ggnn/python/nanobind.cu -------------------------------------------------------------------------------- /src/ggnn/query/bf_query_layer.cu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/src/ggnn/query/bf_query_layer.cu -------------------------------------------------------------------------------- /src/ggnn/query/query_kernels.cu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/src/ggnn/query/query_kernels.cu -------------------------------------------------------------------------------- /src/ggnn/query/query_layer.cu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cgtuebingen/ggnn/HEAD/src/ggnn/query/query_layer.cu --------------------------------------------------------------------------------