Meeting the challenges of k-nearest neighbor search implementation for GPU accelerators
Analýza a řešení výzev implementace vyhledávání k nejbližších sousedů pro GPU akcelerátory
diplomová práce (OBHÁJENO)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/184177Identifikátory
SIS: 242060
Kolekce
- Kvalifikační práce [11244]
Autor
Vedoucí práce
Oponent práce
Yaghob, Jakub
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Informatika - Softwarové systémy
Katedra / ústav / klinika
Katedra distribuovaných a spolehlivých systémů
Datum obhajoby
6. 9. 2023
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Angličtina
Známka
Výborně
Klíčová slova (česky)
kNN|top-k|parallel|GPU|CUDAKlíčová slova (anglicky)
kNN|top-k|parallel|GPU|CUDAPodobnostní vyhledávání je často používaná technika v databázích pro hledání objektů podobných danému dotazu. Používá se ve vyhledávání podle vzoru komplexních objektů, jako jsou například obrázky, získávání informací a statistickém učení. Naše práce se za- měřuje na implementaci a optimalizaci algoritmu k nejbližších sousedů (kNN) na GPU, který se často používá pro podobnostní vyhledávnání. Analyzovali a vyhodnotlili jsme existující implementace kNN na GPU pro různé konfigurace problému. Pro každou kon- figuraci jsme navrhli nejrychlejší řešení. Také jsme navrhli několik optimalizací výběru k nejbližších sousedů. Implementovali jsme přístup, který dosanuje až 80% maximání teo- retické propustnosti na typické konfiguraci problému a je rychlejší než ostatní přístupy v literatuře. Také jsme implementovali algoritmus, který najde k nejbližších sousedů bez toho, aniž by musel uložit matici vzdáleností do paměti, a algoritmus pro velké hodnoty parametru k, který je podstatně rychlejší než optimalizované paralelní třídění. 1
Similarity search is a commonly used technique in databases for finding objects si- milar to a query. It finds applications in content-based retrieval of complex objects like images, information retrieval, and statistical learning. Our thesis focuses on the imple- mentation and optimization of the k nearest neighbours (kNN) algorithm on a GPU, a commonly used technique in similarity search. We analyze and evaluate several existing GPU kNN implementations in various configurations and propose the best algorithm for each configuration. We also suggest optimizations of k-selection. In particular, we suggest a small k-selection approach, which achieves up to 80% of peak theoretical throughput on a typical configuration used in many applications of kNN and is faster than the current state-of-the-art. We implemented a fused algorithm, which solves kNN without mate- rializing the distance matrix, and a large k-selection, which outperforms an optimized, parallel sorting of the whole database by a significant margin. 1