GPU Parallelization of Evolutionary Algorithms
Paralelizace evolučních algoritmů pomocí GPU
diploma thesis (DEFENDED)
View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/127364Identifiers
Study Information System: 233424
Collections
- Kvalifikační práce [11242]
Author
Advisor
Referee
Neruda, Roman
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Artificial Intelligence
Department
Department of Theoretical Computer Science and Mathematical Logic
Date of defense
22. 6. 2021
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Excellent
Keywords (Czech)
Evoluční algorithmy|Paralelizace|GPU výpočty|Optimalizace hejnem částic|Genetické algoritmyKeywords (English)
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