dc.contributor.advisor | Hubička, Jan | |
dc.creator | Kubánek, Ondřej | |
dc.date.accessioned | 2023-07-24T12:41:26Z | |
dc.date.available | 2023-07-24T12:41:26Z | |
dc.date.issued | 2023 | |
dc.identifier.uri | http://hdl.handle.net/20.500.11956/183052 | |
dc.description.abstract | Production compilers use numerous techniques to generate performant code. One such technique is Profile-guided optimization (PGO). The princi- ple of this technique is to insert instrumentation during compilation, gather information about program behaviour with training runs and use this infor- mation during recompilation to improve optimization. The thesis aims to improve the precision of Loop optimizations in GNU Compiler Collection (GCC) with PGO. Currently in GCC, only the average iteration count of a loop is known with PGO. This leads to inefficiencies in both the performance and size of the binary. We implement infrastructure for measuring more information about loop iterations and add new counters namely the histogram of iterations and his- togram of iterations modulo its size. With the histogram of iterations, we improve loop peeling and implement a new case of loop versioning optimiza- tion. This significantly improves the performance of the generated code with reasonable overhead. | en_US |
dc.description.abstract | Produkční překladače používají mnoho různých technik optimalizace kódu. Jedna taková technika je Profile-guided optimization (PGO). Princip této techniky je, že během překládání programu je do něj vložena instrumentace, uživatel změří jeho chování pomocí testovacího běhu a při druhém překladu jsou změřená data použita ke zlepšení optimalizace. Cílem této práce je zlep- šit přesnost optimalizace smyček v GNU Compiler Collection (GCC) s PGO. Během PGO je aktuálně znám ve GCC pouze průměrný počet iterací dané smyčky. To vede k neefektivním optimalizacím, jak co se týče výkonu, tak co se týče velikosti generovaného programu. Tato práce přidává infrastrukturu pro měření dalších vlastností smyček. Implementujeme histogram iterací smyčky a histogram iterací smyčky mo- dulo jeho velikostí. Pomocí histogramu iterací pak zlepšíme optimalizaci loop peeling a přidáme novou verzi optimalizace loop versioning. To podstatně zlepšuje výkon za přiměřenou cenu. | cs_CZ |
dc.language | Čeština | cs_CZ |
dc.language.iso | cs_CZ | |
dc.publisher | Univerzita Karlova, Matematicko-fyzikální fakulta | cs_CZ |
dc.subject | loop optimization|compiler|gcc | en_US |
dc.subject | optimalizace smyček|překladač|gcc | cs_CZ |
dc.title | Optimalizace smyček pomocí histogramu | cs_CZ |
dc.type | bakalářská práce | cs_CZ |
dcterms.created | 2023 | |
dcterms.dateAccepted | 2023-06-29 | |
dc.description.department | Katedra aplikované matematiky | cs_CZ |
dc.description.department | Department of Applied Mathematics | en_US |
dc.description.faculty | Faculty of Mathematics and Physics | en_US |
dc.description.faculty | Matematicko-fyzikální fakulta | cs_CZ |
dc.identifier.repId | 255381 | |
dc.title.translated | Improving loop optimization with histogram profiling | en_US |
dc.contributor.referee | Jambor, Martin | |
thesis.degree.name | Bc. | |
thesis.degree.level | bakalářské | cs_CZ |
thesis.degree.discipline | Informatika se specializací Obecná informatika | cs_CZ |
thesis.degree.discipline | Computer Science with specialisation in General Computer Science | en_US |
thesis.degree.program | Informatika | cs_CZ |
thesis.degree.program | Computer Science | en_US |
uk.thesis.type | bakalářská práce | cs_CZ |
uk.taxonomy.organization-cs | Matematicko-fyzikální fakulta::Katedra aplikované matematiky | cs_CZ |
uk.taxonomy.organization-en | Faculty of Mathematics and Physics::Department of Applied Mathematics | en_US |
uk.faculty-name.cs | Matematicko-fyzikální fakulta | cs_CZ |
uk.faculty-name.en | Faculty of Mathematics and Physics | en_US |
uk.faculty-abbr.cs | MFF | cs_CZ |
uk.degree-discipline.cs | Informatika se specializací Obecná informatika | cs_CZ |
uk.degree-discipline.en | Computer Science with specialisation in General Computer Science | en_US |
uk.degree-program.cs | Informatika | cs_CZ |
uk.degree-program.en | Computer Science | en_US |
thesis.grade.cs | Výborně | cs_CZ |
thesis.grade.en | Excellent | en_US |
uk.abstract.cs | Produkční překladače používají mnoho různých technik optimalizace kódu. Jedna taková technika je Profile-guided optimization (PGO). Princip této techniky je, že během překládání programu je do něj vložena instrumentace, uživatel změří jeho chování pomocí testovacího běhu a při druhém překladu jsou změřená data použita ke zlepšení optimalizace. Cílem této práce je zlep- šit přesnost optimalizace smyček v GNU Compiler Collection (GCC) s PGO. Během PGO je aktuálně znám ve GCC pouze průměrný počet iterací dané smyčky. To vede k neefektivním optimalizacím, jak co se týče výkonu, tak co se týče velikosti generovaného programu. Tato práce přidává infrastrukturu pro měření dalších vlastností smyček. Implementujeme histogram iterací smyčky a histogram iterací smyčky mo- dulo jeho velikostí. Pomocí histogramu iterací pak zlepšíme optimalizaci loop peeling a přidáme novou verzi optimalizace loop versioning. To podstatně zlepšuje výkon za přiměřenou cenu. | cs_CZ |
uk.abstract.en | Production compilers use numerous techniques to generate performant code. One such technique is Profile-guided optimization (PGO). The princi- ple of this technique is to insert instrumentation during compilation, gather information about program behaviour with training runs and use this infor- mation during recompilation to improve optimization. The thesis aims to improve the precision of Loop optimizations in GNU Compiler Collection (GCC) with PGO. Currently in GCC, only the average iteration count of a loop is known with PGO. This leads to inefficiencies in both the performance and size of the binary. We implement infrastructure for measuring more information about loop iterations and add new counters namely the histogram of iterations and his- togram of iterations modulo its size. With the histogram of iterations, we improve loop peeling and implement a new case of loop versioning optimiza- tion. This significantly improves the performance of the generated code with reasonable overhead. | en_US |
uk.file-availability | V | |
uk.grantor | Univerzita Karlova, Matematicko-fyzikální fakulta, Katedra aplikované matematiky | cs_CZ |
thesis.grade.code | 1 | |
uk.publication-place | Praha | cs_CZ |
uk.thesis.defenceStatus | O | |