Cílem práce je srovnání CUDA, OpenCL a C++ AMP implementace evolučního algoritmu PSO. Teoretická část práce obsahuje úvod k paralelnímu programování, popis koncepce CUDA, OpenCL a C++ AMP, zabývá se základy evolučních algoritmů, z nichž podrobně rozebírá algoritmus PSO a vybrané testovací funkce. V praktické části se práce zaobírá popisem implementací algoritmu PSO pomocí standardů CUDA, OpenCL a C++ AMP a jejich srovnáním z hlediska náročnosti implementace, délky zdrojového kódu a doby výpočtu.
Annotation in English
The aim of this thesis is the comparison of CUDA, OpenCL and C++ AMP implementation of the evolutionary algorithm PSO. The theoretical part provides an introduction to parallel programming, a description of the concept of CUDA, OpenCL and C + + AMP, deals with the fundamentals of evolutionary algorithms, of which the PSO algorithm and selected test functions are described in detail. Practical part of the thesis deals with the description of the algorithm PSO?s implementations using standards CUDA, OpenCL and C + + AMP and compares their performance in terms of complexity of the implementation, the length of the source code and calculation time.
Keywords
CUDA, OpenCL, NVIDIA, C++ AMP, C, C++, paralelní programování, PSO, evoluční algoritmy, optimalizace, testovací funkce
Keywords in English
CUDA, OpenCL, NVIDIA, C + + AMP, C, C + +, parallel programming, PSO, evolutionary algorithms, optimization, test functions
Length of the covering note
78
Language
CZ
Annotation
Cílem práce je srovnání CUDA, OpenCL a C++ AMP implementace evolučního algoritmu PSO. Teoretická část práce obsahuje úvod k paralelnímu programování, popis koncepce CUDA, OpenCL a C++ AMP, zabývá se základy evolučních algoritmů, z nichž podrobně rozebírá algoritmus PSO a vybrané testovací funkce. V praktické části se práce zaobírá popisem implementací algoritmu PSO pomocí standardů CUDA, OpenCL a C++ AMP a jejich srovnáním z hlediska náročnosti implementace, délky zdrojového kódu a doby výpočtu.
Annotation in English
The aim of this thesis is the comparison of CUDA, OpenCL and C++ AMP implementation of the evolutionary algorithm PSO. The theoretical part provides an introduction to parallel programming, a description of the concept of CUDA, OpenCL and C + + AMP, deals with the fundamentals of evolutionary algorithms, of which the PSO algorithm and selected test functions are described in detail. Practical part of the thesis deals with the description of the algorithm PSO?s implementations using standards CUDA, OpenCL and C + + AMP and compares their performance in terms of complexity of the implementation, the length of the source code and calculation time.
Keywords
CUDA, OpenCL, NVIDIA, C++ AMP, C, C++, paralelní programování, PSO, evoluční algoritmy, optimalizace, testovací funkce
Keywords in English
CUDA, OpenCL, NVIDIA, C + + AMP, C, C + +, parallel programming, PSO, evolutionary algorithms, optimization, test functions
Research Plan
Zpracujte literární rešerši na téma Particle Swarm Optimization (PSO), OpenCL, CUDA a C++ Accelerated Massive Parallelism (C++ AMP).
Navrhněte implementaci PSO pro OpenCL, CUDA a C++ AMP.
Vytvořte testovací aplikaci.
Srovnejte výkon jednotlivých implementací.
Demonstrujte výsledky a formulujte závěr.
Research Plan
Zpracujte literární rešerši na téma Particle Swarm Optimization (PSO), OpenCL, CUDA a C++ Accelerated Massive Parallelism (C++ AMP).
Navrhněte implementaci PSO pro OpenCL, CUDA a C++ AMP.
Vytvořte testovací aplikaci.
Srovnejte výkon jednotlivých implementací.
Demonstrujte výsledky a formulujte závěr.
Recommended resources
BRATTON, D. Defining a Standard for Particle Swarm Optimization. In: 2007 IEEE Swarm Intelligence Symposium: Honolulu, HI, 1-5 April 2007. Piscataway, NJ: IEEE, 2007, s. 120-127. DOI: 1-4244-0708-7.
ZELINKA, Ivan. Umělá inteligence v problémech globální optimalizace. 1. vyd. Praha: BEN - technická literatura, 2002, 189 s. ISBN 80-730-0069-5.
GREGORY, Kate. C AMP: accelerated massive parallelism with Microsoft Visual C. United States of America: O'Reilly Media, 2012, 326 pages. ISBN 9780735668195.
MUNSHI, Aaftab. OpenCL programming guide. 1. vyd. Upper Saddle River, NJ: Addison-Wesley, 2012, xliv, 603 p. ISBN 03-217-4964-2.
SANDERS, Jason. CUDA by example: an introduction to general-purpose GPU programming. 1st print. Upper Saddle River: Addison-Wesley, 2010, xix, 290 s. ISBN 978-0-13-138768-3.
Recommended resources
BRATTON, D. Defining a Standard for Particle Swarm Optimization. In: 2007 IEEE Swarm Intelligence Symposium: Honolulu, HI, 1-5 April 2007. Piscataway, NJ: IEEE, 2007, s. 120-127. DOI: 1-4244-0708-7.
ZELINKA, Ivan. Umělá inteligence v problémech globální optimalizace. 1. vyd. Praha: BEN - technická literatura, 2002, 189 s. ISBN 80-730-0069-5.
GREGORY, Kate. C AMP: accelerated massive parallelism with Microsoft Visual C. United States of America: O'Reilly Media, 2012, 326 pages. ISBN 9780735668195.
MUNSHI, Aaftab. OpenCL programming guide. 1. vyd. Upper Saddle River, NJ: Addison-Wesley, 2012, xliv, 603 p. ISBN 03-217-4964-2.
SANDERS, Jason. CUDA by example: an introduction to general-purpose GPU programming. 1st print. Upper Saddle River: Addison-Wesley, 2010, xix, 290 s. ISBN 978-0-13-138768-3.
Enclosed appendices
1 CD-ROM
Appendices bound in thesis
-
Taken from the library
No
Full text of the thesis
Appendices
Reviewer's report
Supervisor's report
Defence procedure record
Student seznámil komisi s obsahem a výsledky své diplomové práce v krátké prezentaci. Po přečtení posudků vedoucího a oponenta práce následovala diskuze, ve které byly položeny následující dotazy:
Ing. Horák: Na jakém praktickém problému by bylo možné pokračovat v tetování výkonu výše uvedených implementací?
Ing. Král: Jak byste zhodnotil kvalitu dokumentace a její srozumitelnost u jednotlivých platforem?
dr. Maláník: Porovnával jste to s CPU?
Student na položené dotazy odpověděl. Následovalo zkoušení ze tří předmětů.