*Fabian Groh, Lukas Ruppert, Patrick Wieschollek, Hendrik Pa Lensch
การค้นหาเพื่อนบ้านที่ใกล้ที่สุด (ANN) โดยประมาณในมิติที่สูงเป็นส่วนสำคัญของระบบการมองเห็นคอมพิวเตอร์หลายระบบและได้รับความสำคัญในการเรียนรู้อย่างลึกซึ้งด้วยการเป็นตัวแทนหน่วยความจำที่ชัดเจน เนื่องจาก PQT และ FAISS เริ่มใช้ประโยชน์จากการขนานขนาดใหญ่ที่นำเสนอโดย GPUs การใช้งานที่ใช้ 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
เตรียมภาพนักเทียบท่าโดย
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