Optimalizace algoritmů SIMD instrukcemi
Loading...
Date
Authors
Sedláček, Marek
ORCID
Advisor
Referee
Mark
A
Journal Title
Journal ISSN
Volume Title
Publisher
Vysoké učení technické v Brně. Fakulta informačních technologií
Abstract
Tato práce popisuje a porovnává techniky použitelné pro optimalizaci algoritmů převážně z hlediska zkrácení výpočetní doby. Pro demonstraci praktik byly vybrány algoritmy z rozdílných oblastí a to -- optimalizace hejnem částic, algoritmus pro vykreslování kružnic a algoritmus pro otočení obrázku (matice). Tyto algoritmy byly implementovány v jazyce Python 3, C a jazyce symbolických adres s využitím SIMD technologie. Při psaní kódu byl kladen důraz na co nejefektivnější implementaci algoritmu. V této práci jsou tyto praktiky popsáný a porovnány, stejně tak jako jejich účinek na optimalizaci algoritmů. Provedené testy potvrdily velký potenciál SIMD technologií pro optimalizace, ale také to, že tento přístup není možný využít na všechny algoritmy. V případě optimalizace algoritmu pro vykreslování kružnic dosahovala SIMD implementace více jak desetinásobné rychlosti než sériová implementace v jazyce C a více jak tisíckrát vyšší rychlost než implementace v jazyce Python 3. V případě algoritmu optimalizace hejnem částic byla však implementace v jazyce C rychlejší než SIMD implementace algoritmu.
This thesis talks about techniques which can be used to optimize run time of algorithms. For a demonstration of these techniques algorithms from different fields were chosen, namely particle swarm optimization, circle drawing algorithm and image (matrix) rotation algorithm. These algorithms were written in Python 3, C language and assembly language using SIMD instructions. While writing these codes emphases was placed on code efficiency. These practices were in this thesis described and compared, same as the impact on algorithm optimization. Performed tests upheld expected potential of SIMD technology for optimization, but also that this approach cannot be used in all cases. In case of circle drawing the SIMD approach achieved more than ten times better speeds than the serial implementation in C and more than one thousand times better speed than Python 3 implementation. In case of particle swarm optimization the result was opposite -- serial C implementation achieved a better speed than SIMD implementation.
This thesis talks about techniques which can be used to optimize run time of algorithms. For a demonstration of these techniques algorithms from different fields were chosen, namely particle swarm optimization, circle drawing algorithm and image (matrix) rotation algorithm. These algorithms were written in Python 3, C language and assembly language using SIMD instructions. While writing these codes emphases was placed on code efficiency. These practices were in this thesis described and compared, same as the impact on algorithm optimization. Performed tests upheld expected potential of SIMD technology for optimization, but also that this approach cannot be used in all cases. In case of circle drawing the SIMD approach achieved more than ten times better speeds than the serial implementation in C and more than one thousand times better speed than Python 3 implementation. In case of particle swarm optimization the result was opposite -- serial C implementation achieved a better speed than SIMD implementation.
Description
Citation
SEDLÁČEK, M. Optimalizace algoritmů SIMD instrukcemi [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2020.
Document type
Document version
Date of access to the full text
Language of document
cs
Study field
Informační technologie
Comittee
prof. Dr. Ing. Jan Černocký (předseda)
doc. Ing. Jiří Jaroš, Ph.D. (místopředseda)
doc. RNDr. Milan Češka, Ph.D. (člen)
Ing. Filip Orság, Ph.D. (člen)
RNDr. Marek Rychlý, Ph.D. (člen)
Date of acceptance
2020-07-10
Defence
Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm A. Otázky u obhajoby: - Jaké jsou možnosti využití SIMD instrukcí ve vyšších programovacích jazycích a jak jich použití případně docílit? - Jaké datové typy jste používal?
Result of defence
práce byla úspěšně obhájena
Document licence
Standardní licenční smlouva - přístup k plnému textu bez omezení