Algorithms and data structures for hashing on GPU
Algoritmy a datové struktury pro hešování na GPU
Authors
Supervisors
Reviewers
Editors
Other contributors
Journal Title
Journal ISSN
Volume Title
Publisher
České vysoké učení technické v Praze
Czech Technical University in Prague
Czech Technical University in Prague
Date of defense
Abstract
Hešovaci tabulka je typ datové struktury, která umožňuje vloženi a vyhledáváni kličů se složitosti O(1). Některé hešovaci tabulky jsou optimalizované pro práci na grafických procesorech (GPU). Tato práce je zaměřena na studium různých typů hešovaci tabulek a algoritmů a jejich implementaci pro GPU. Cilem je seznámit se s programovánim pomoci nástroje CUDA(r) a knihovny Template Numerical Library (TNL - www.tnl-project.org). Teoretická část po-pisuje podstatu hešováni a představuje některé datové struktury a algoritmy přizpůsobené pro paralelni zpracováni na GPU. V praktické části jsou některé z těchto přistupů (jmenovitě Cuckoo hashing a HashGraph) implementovány s pomoci TNL. Nakonec je implementace testována. Testy porovnávaji výkon na GPU a CPU s implementaci kontejneru std::unordered set ze standardni šablonové knihovny (STL) jazyka C++. Výsledky ukazuji, že všechny tes-tované přistupy funguji na GPU mnohem rychleji. Nejrychlejšim nalezeným přistupem byl HashGraph verze 1.0. Ten je nejlepši pro použiti v mnoha apli-kacich, které vyžaduji vloženi a vyhledáváni neuspořádaných kličů na GPU.
A hash table is a type of data structure that enables insertion and probing of keys having same format with an average complexity of O(1). Some hash tables are also more optimized for working on graphics processors (GPU). The goal of this work is to get familiar with programming for GPU using CUDA(r) framework and Template Numerical Library (TNL - www.tnl-project.org) and use it to realize several hashing approaches. Theoretical part describes the idea of hashing and introduces some data structures and algorithms intended to adapt it for parallel programming for GPU. In practical part, some of these approaches (namely, Cuckoo hashing and HashGraphs) are implemented using TNL. Finally, the implementation is tested. The tests compare its performance on GPU and CPU with the implementation of std::unordered set container in Standard Template Library of the C++ language. The results show that all tested approaches perform faster on GPU. The fastest approach found was HashGraph of version 1.0. Thus, it is the best examined choice to be used in many applications that require storing and probing unordered keys on GPU.
A hash table is a type of data structure that enables insertion and probing of keys having same format with an average complexity of O(1). Some hash tables are also more optimized for working on graphics processors (GPU). The goal of this work is to get familiar with programming for GPU using CUDA(r) framework and Template Numerical Library (TNL - www.tnl-project.org) and use it to realize several hashing approaches. Theoretical part describes the idea of hashing and introduces some data structures and algorithms intended to adapt it for parallel programming for GPU. In practical part, some of these approaches (namely, Cuckoo hashing and HashGraphs) are implemented using TNL. Finally, the implementation is tested. The tests compare its performance on GPU and CPU with the implementation of std::unordered set container in Standard Template Library of the C++ language. The results show that all tested approaches perform faster on GPU. The fastest approach found was HashGraph of version 1.0. Thus, it is the best examined choice to be used in many applications that require storing and probing unordered keys on GPU.
Description
Citation
Permanent link
Rights/License
A university thesis is a work protected by the Copyright Act of the Czech Republic. Extracts, copies and transcripts of the thesis are allowed for personal use only and at one`s own expense. The use of thesis should be in compliance with the Copyright Act.
Vysokoškolská závěrečná práce je dílo chráněné autorským zákonem. Je možné pořizovat z něj na své náklady a pro svoji osobní potřebu výpisy, opisy a rozmnoženiny. Jeho využití musí být v souladu s autorským zákonem v platném znění.
Vysokoškolská závěrečná práce je dílo chráněné autorským zákonem. Je možné pořizovat z něj na své náklady a pro svoji osobní potřebu výpisy, opisy a rozmnoženiny. Jeho využití musí být v souladu s autorským zákonem v platném znění.