Paralelní algoritmy pro GPU ve strojovém učení
Parallel algorithms for GPU in machine learning
Typ dokumentu
diplomová prácemaster thesis
Autor
Samuel Križan
Vedoucí práce
Oberhuber Tomáš
Oponent práce
Tvrdík Pavel
Studijní obor
Počítačové systémy a sítěStudijní program
InformatikaInstituce přidělující hodnost
katedra počítačových systémůPráva
A university thesis is a work protected by the Copyright Act. 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 http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf and the citation ethics http://knihovny.cvut.cz/vychova/vskp.htmlVysokoš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 http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf a citační etikou http://knihovny.cvut.cz/vychova/vskp.html
Metadata
Zobrazit celý záznamAbstrakt
Tato diplomová práce rozšiřuje knihovnu Template Numerical Library (TNL), moderní framework v jazyce C++ určený pro vysoce výkonné numerické výpočty, o dvě klíčové komponenty běžně využívané ve strojovém učení: algoritmus K-means pro shlukování dat a systém zpětné automatické diferenciace (AD). Obě implementace byly navrženy tak, aby se hladce integrovaly do stávající architektury TNL a podporovaly výpočty na CPU i GPU. Implementace algoritmu K-means zahrnuje tři varianty: základní verzi využívající primární datové struktury TNL, variantu postavenou na abstrakci TNL::Segments a GPU-optimalizovanou verzi inspirovanou existujícími výkonnými přístupy. Experimentální výsledky ukazují, že GPU-optimalizovaná verze dosahuje výkonu srovnatelného s knihovnou cuML, zatímco základní varianta je vhodná zejména pro menší datové sady. Segmentová verze se ukázala jako nevhodná kvůli absenci nativní podpory vícerozměrné redukce v TNL. Systém automatické diferenciace byl navržen jako zpětný diferenciátor založený na výpočetním grafu a je plně kompatibilní s datovými typy knihovny TNL. Jeho funkčnost byla ověřena na příkladu trénování jednoduché neuronové sítě. V porovnání s knihovnou TensorFlow si implementace vede dobře na menších datech, zatímco při rozsáhlejších výpočtech jednoznačně dominuje výkon TensorFlow. Další nevýhodou této implementace je, že v současnosti nepodporuje některé pokročilé funkce, jako je výpočet derivací vyšších řádů. Tato práce tak ukazuje, že je možné do knihovny TNL efektivně integrovat základní komponenty strojového učení a zároveň poukazuje na limity tohoto přístupu. Výsledky vytvářejí pevný základ pro další rozvoj TNL směrem k širšímu využití v oblasti strojového učení. This thesis extends the Template Numerical Library (TNL), a modern C++ framework for high-performance numerical computing, by implementing two core components widely used in machine learning: the K-means clustering algorithm and reverse-mode automatic differentiation (AD). Both components were designed to integrate seamlessly with TNLs abstractions and support execution on both CPUs and GPUs. The K-means implementation includes a baseline version using core TNL structures, a variant utilizing the TNL::Segments abstraction, and a GPU-optimized version inspired by prior research. Experimental evaluation shows that the GPU-optimized implementation performs comparably to the cuML library, while the baseline version is suitable for smaller datasets, and the segments variant is hindered by the lack of native multidimensional reductions in TNL. The AD system was implemented as a graph-based reverse-mode engine compatible with TNL data types. Its correctness and practical applicability were demonstrated through the training of a simple neural network. Compared to TensorFlow, the implementation shows advantages on smaller datasets, while TensorFlow clearly dominates on larger workloads. Additionally, the implementation currently lacks advanced features such as support for higher-order differentiation. Overall, this work demonstrates the feasibility and limitations of integrating machine learning primitives into TNL and establishes a foundation for future extensions aimed at broader machine learning support within the library.
Kolekce
- Diplomové práce - 18104 [179]