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の指示に従ってください
Docker画像を準備します
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