Martin Lücke, Oleksandr Zinenko, William S. Moses, Michel Steuwer, Albert Cohen
{"title":"The MLIR Transform Dialect. Your compiler is more powerful than you think","authors":"Martin Lücke, Oleksandr Zinenko, William S. Moses, Michel Steuwer, Albert Cohen","doi":"arxiv-2409.03864","DOIUrl":null,"url":null,"abstract":"To take full advantage of a specific hardware target, performance engineers\nneed to gain control on compilers in order to leverage their domain knowledge\nabout the program and hardware. Yet, modern compilers are poorly controlled,\nusually by configuring a sequence of coarse-grained monolithic black-box\npasses, or by means of predefined compiler annotations/pragmas. These can be\neffective, but often do not let users precisely optimize their varying compute\nloads. As a consequence, performance engineers have to resort to implementing\ncustom passes for a specific optimization heuristic, requiring compiler\nengineering expert knowledge. In this paper, we present a technique that provides fine-grained control of\ngeneral-purpose compilers by introducing the Transform dialect, a controllable\nIR-based transformation system implemented in MLIR. The Transform dialect\nempowers performance engineers to optimize their various compute loads by\ncomposing and reusing existing - but currently hidden - compiler features\nwithout the need to implement new passes or even rebuilding the compiler. We demonstrate in five case studies that the Transform dialect enables\nprecise, safe composition of compiler transformations and allows for\nstraightforward integration with state-of-the-art search methods.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":"1 1","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2024-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"arXiv - CS - Programming Languages","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/arxiv-2409.03864","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
To take full advantage of a specific hardware target, performance engineers
need to gain control on compilers in order to leverage their domain knowledge
about the program and hardware. Yet, modern compilers are poorly controlled,
usually by configuring a sequence of coarse-grained monolithic black-box
passes, or by means of predefined compiler annotations/pragmas. These can be
effective, but often do not let users precisely optimize their varying compute
loads. As a consequence, performance engineers have to resort to implementing
custom passes for a specific optimization heuristic, requiring compiler
engineering expert knowledge. In this paper, we present a technique that provides fine-grained control of
general-purpose compilers by introducing the Transform dialect, a controllable
IR-based transformation system implemented in MLIR. The Transform dialect
empowers performance engineers to optimize their various compute loads by
composing and reusing existing - but currently hidden - compiler features
without the need to implement new passes or even rebuilding the compiler. We demonstrate in five case studies that the Transform dialect enables
precise, safe composition of compiler transformations and allows for
straightforward integration with state-of-the-art search methods.