*فابيان جروه ، لوكاس روبرت ، باتريك ويشولليك ، هندريك با لنسش
يعد البحث التقريبي لأقرب جار (ANN) في أبعاد عالية جزءًا لا يتجزأ من العديد من أنظمة رؤية الكمبيوتر وتكتسب أهمية في التعلم العميق مع تمثيلات الذاكرة الصريحة. منذ أن بدأت PQT و Faiss في الاستفادة من التوازي الهائل الذي تقدمه وحدات معالجة الرسومات ، تعد التطبيقات القائمة على GPU موردًا حاسمًا لطرق آن الحديثة اليوم. في حين أن معظم هذه الأساليب تسمح بالاستعلامات بشكل أسرع ، يتم تخصيص تأكيد أقل لتسريع بناء هياكل الفهرس الأساسية. في هذه الورقة ، نقترح بنية بحث جديدة تستند إلى أقرب الرسوم البيانية الجار وانتشار المعلومات على الرسوم البيانية. تم تصميم طريقتنا للاستفادة من بنية 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-niative/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