ggnn
release 0.5
*Fabian Groh,Lukas Ruppert,Patrick Wieschollek,Hendrik PA Lensch
在高维度中的大约最近的邻居(ANN)搜索是几个计算机视觉系统不可或缺的一部分,并且具有明确的内存表示形式的深度学习中的重要性。自从PQT和FAISS开始利用GPU提供的大规模并行性,因此基于GPU的实现是当今最先进的ANN方法的关键资源。尽管这些方法中的大多数都允许更快的查询,但更少的重点是加速基础索引结构的构建。在本文中,我们根据最近的邻居图和图表上的信息传播提出了一种新颖的搜索结构。我们的方法旨在利用GPU架构来加速索引结构的层次结构并执行查询。经验评估表明,在构建时间,准确性和搜索速度方面,GGNN显着超过了基于GPU和CPU的最新系统。
目前正在审查这项工作。我们已经更新了代码。一些新结果如下所示。 
# Get the repository and dependencies
git clone --recursive https://github.com/cgtuebingen/ggnn.git
cd ggnn
# get the SIFT1M data
cd data
./get_sift1m
cd ..
# Build the demo
mkdir build_local
cd build_local
cmake ..
make
# Example for SIFT1M on GPU 0:
./sift1m_multi --base_filename ../data/sift/sift_base.fvecs
--query_filename ../data/sift/sift_query.fvecs
--groundtruth_filename ../data/sift/sift_groundtruth.ivecs
--gpu_ids= " 0 "
# Example usage with 2 GPUs and 4 shards in total (4x250k = 1M):
./sift1m_multi --base_filename ../data/sift/sift_base.fvecs
--query_filename ../data/sift/sift_query.fvecs
--groundtruth_filename ../data/sift/sift_groundtruth.ivecs
--gpu_ids= " 0 1 "
--factor 10000
--base 100
--shard 25要求:
sudo apt install libgflags-dev )本机构建的一种替代方法是使用nvidia-docker。在https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#installing-docker-ce上按照https://docs.nvidia.com/datacenter/cloud-native/container-tooker-ce遵循指示。
通过
cd docker
make
cd ../确保您可以运行
sudo docker run --gpus all cgtuebingen/ggnn:v1 nvidia-smi现在通过
user@host $ sudo docker run --rm -it --user " $( id -u ) : $( id -g ) " -v ${PWD} :/ggnn:rw --gpus all cgtuebingen/ggnn:v1 bash
user@container $ ./build.sh
cd build_docker
make