dc.contributor.advisor | Leopoldseder, David | |
dc.creator | Pečimúth, Andrej | |
dc.date.accessioned | 2023-11-06T14:25:27Z | |
dc.date.available | 2023-11-06T14:25:27Z | |
dc.date.issued | 2023 | |
dc.identifier.uri | http://hdl.handle.net/20.500.11956/184169 | |
dc.description.abstract | Modern compilers apply a set of optimization passes aiming to speed up the generated code. The combined effect of individual optimizations is often un- predictable. Thus, changes to a compiler's code may hinder the performance of generated code as an unintended consequence. Due to the vast number of compilation units and applied optimizations, it is difficult to diagnose these re- gressions. We propose to solve the problem of diagnosing performance regressions by capturing the compiler's optimization decisions. We do so by representing the applied optimization phases, optimization decisions, and inlining decisions in the form of trees. This thesis introduces an approach utilizing tree edit distance (TED) to detect optimization differences in a semi-automated way. Since the same source code may be inlined in different contexts and optimized differently in each, we also present an approach to compare optimization decisions in dif- ferently inlined code. We employ these techniques to pinpoint the causes of performance problems in various benchmarks of the Graal compiler. | en_US |
dc.description.abstract | Moderní překladače aplikují při generování kódu sadu optimalizací, jejichž cílem je zrychlit výsledný program. Kombinovaný účinek jednotlivých optima- lizací je však často nepředvídatelný, změny kódu kompilátoru tak mohou jako neúmyslný důsledek zpomalit výsledný program. Vzhledem k velkému počtu kompilačních jednotek a aplikovaných optimalizací je obtížné takové regrese di- agnostikovat. Tato práce pomáhá v diagnostice výkonnostních regresí zachycením opti- malizačních rozhodnutí kompilátoru. Činíme tak reprezentací použitých opti- malizačních fází, optimalizačních rozhodnutí a rozhodnutí o inlinování ve formě stromů, a aplikováním stromové editační vzdálenosti (TED) na tyto stromy k po- loautomatickému odhalování optimalizačních rozdílů. Protože tentýž zdrojový kód může být inlinován v různých kontextech a tedy i různě optimalizován, před- stavujeme rovněž způsob porovnávání optimalizací téhož kódu v různých kon- textech. Uvedené techniky používáme k určení příčin výkonnostních problémů v benchmarcích překladače Graal. | cs_CZ |
dc.language | English | cs_CZ |
dc.language.iso | en_US | |
dc.publisher | Univerzita Karlova, Matematicko-fyzikální fakulta | cs_CZ |
dc.subject | překladač|optimalizace | cs_CZ |
dc.subject | compiler|optimization | en_US |
dc.title | Optimization Decision Analysis for Graal | en_US |
dc.type | diplomová práce | cs_CZ |
dcterms.created | 2023 | |
dcterms.dateAccepted | 2023-09-06 | |
dc.description.department | Katedra distribuovaných a spolehlivých systémů | cs_CZ |
dc.description.department | Department of Distributed and Dependable Systems | en_US |
dc.description.faculty | Matematicko-fyzikální fakulta | cs_CZ |
dc.description.faculty | Faculty of Mathematics and Physics | en_US |
dc.identifier.repId | 250682 | |
dc.title.translated | Analýza optimalizačních rozhodnutí pro Graal | cs_CZ |
dc.contributor.referee | Petříček, Tomáš | |
thesis.degree.name | Mgr. | |
thesis.degree.level | navazující magisterské | cs_CZ |
thesis.degree.discipline | Informatika - Softwarové systémy | cs_CZ |
thesis.degree.discipline | Computer Science - Software Systems | en_US |
thesis.degree.program | Informatika - Softwarové systémy | cs_CZ |
thesis.degree.program | Computer Science - Software Systems | en_US |
uk.thesis.type | diplomová práce | cs_CZ |
uk.taxonomy.organization-cs | Matematicko-fyzikální fakulta::Katedra distribuovaných a spolehlivých systémů | cs_CZ |
uk.taxonomy.organization-en | Faculty of Mathematics and Physics::Department of Distributed and Dependable Systems | 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 - Softwarové systémy | cs_CZ |
uk.degree-discipline.en | Computer Science - Software Systems | en_US |
uk.degree-program.cs | Informatika - Softwarové systémy | cs_CZ |
uk.degree-program.en | Computer Science - Software Systems | en_US |
thesis.grade.cs | Výborně | cs_CZ |
thesis.grade.en | Excellent | en_US |
uk.abstract.cs | Moderní překladače aplikují při generování kódu sadu optimalizací, jejichž cílem je zrychlit výsledný program. Kombinovaný účinek jednotlivých optima- lizací je však často nepředvídatelný, změny kódu kompilátoru tak mohou jako neúmyslný důsledek zpomalit výsledný program. Vzhledem k velkému počtu kompilačních jednotek a aplikovaných optimalizací je obtížné takové regrese di- agnostikovat. Tato práce pomáhá v diagnostice výkonnostních regresí zachycením opti- malizačních rozhodnutí kompilátoru. Činíme tak reprezentací použitých opti- malizačních fází, optimalizačních rozhodnutí a rozhodnutí o inlinování ve formě stromů, a aplikováním stromové editační vzdálenosti (TED) na tyto stromy k po- loautomatickému odhalování optimalizačních rozdílů. Protože tentýž zdrojový kód může být inlinován v různých kontextech a tedy i různě optimalizován, před- stavujeme rovněž způsob porovnávání optimalizací téhož kódu v různých kon- textech. Uvedené techniky používáme k určení příčin výkonnostních problémů v benchmarcích překladače Graal. | cs_CZ |
uk.abstract.en | Modern compilers apply a set of optimization passes aiming to speed up the generated code. The combined effect of individual optimizations is often un- predictable. Thus, changes to a compiler's code may hinder the performance of generated code as an unintended consequence. Due to the vast number of compilation units and applied optimizations, it is difficult to diagnose these re- gressions. We propose to solve the problem of diagnosing performance regressions by capturing the compiler's optimization decisions. We do so by representing the applied optimization phases, optimization decisions, and inlining decisions in the form of trees. This thesis introduces an approach utilizing tree edit distance (TED) to detect optimization differences in a semi-automated way. Since the same source code may be inlined in different contexts and optimized differently in each, we also present an approach to compare optimization decisions in dif- ferently inlined code. We employ these techniques to pinpoint the causes of performance problems in various benchmarks of the Graal compiler. | en_US |
uk.file-availability | V | |
uk.grantor | Univerzita Karlova, Matematicko-fyzikální fakulta, Katedra distribuovaných a spolehlivých systémů | cs_CZ |
thesis.grade.code | 1 | |
dc.contributor.consultant | Tůma, Petr | |
uk.publication-place | Praha | cs_CZ |
uk.thesis.defenceStatus | O | |