GPU Parallelization of Evolutionary Algorithms
Paralelizace evolučních algoritmů pomocí GPU
diplomová práce (OBHÁJENO)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/127364Identifikátory
SIS: 233424
Kolekce
- Kvalifikační práce [11987]
Autor
Vedoucí práce
Oponent práce
Neruda, Roman
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Umělá inteligence
Katedra / ústav / klinika
Katedra teoretické informatiky a matematické logiky
Datum obhajoby
22. 6. 2021
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Angličtina
Známka
Výborně
Klíčová slova (česky)
Evoluční algorithmy|Paralelizace|GPU výpočty|Optimalizace hejnem částic|Genetické algoritmyKlíčová slova (anglicky)
Evolutionary Algorithms|Parallelization|GPU Computing|Genetic Algorithms|Particle Swarm OptimizationGrafické karty stojí za úspěchem neuronových sítí v posledních letech a jejich rozšíření do běžného života. Dalším úspěšným oborem umělé inteligence jsou evoluční algoritmy. Jejich schopnost paralelizace je známá již řadu let a byla prakticky aplikována na řadu problémů. Paralelizace evolučních algoritmů se ovšem zpravidla zaměřuje na vícejádrové nebo víceprocesorové stroje, popřípadě na cluster takových strojů. Cílem této práce je prozkoumat možnost paralelizace evolučních algoritmů na grafic- kých kartách. V rámci práce představuji jejich implementaci v knihovně PyTorch, která umožňuje spuštění stejného zdrojového kódu jak na CPU, tak na GPU. Implemen- tace poskytuje nejběžnější evoluční operátory pro genetické algoritmy, algoritmy s reál- ným kódováním a algoritmy optimalizace hejnem částic. Implementace je podrobena intenzivnímu testování a ukazuji, že jejich spuštěním na GPU lze dosáhnout několika- násobnému zrychlení pro středně velké až velké problémy a populace. 1
Graphical Processing Units stand for the success of Artificial Neural Networks over the past decade and their broader application in the industry. Another promising field of Artificial Intelligence is Evolutionary Algorithms. Their parallelization ability is well known and has been successfully applied in practice. However, these attempts focused on multi-core and multi-machine parallelization rather than on the GPU. This work explores the possibilities of Evolutionary Algorithms parallelization on GPU. I propose implementation in PyTorch library, allowing to execute EA on both CPU and GPU. The proposed implementation provides the most common evolutionary operators for Genetic Algorithms, Real-Coded Evolutionary Algorithms, and Particle Swarm Op- timization Algorithms. Finally, I show the performance is an order of magnitude faster on GPU for medium and big-sized problems and populations. 1
