Martin Lücke, Oleksandr Zinenko, William S. Moses, Michel Steuwer, Albert Cohen
{"title":"MLIR 转换方言。你的编译器比你想象的更强大","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":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2024-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"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\":null,\"pages\":null},\"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}","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
摘要
为了充分利用特定硬件目标,性能工程师需要对编译器进行控制,以便充分利用他们对程序和硬件的领域知识。然而,现代编译器的控制能力很差,通常是通过配置一系列粗粒度的单片黑盒子,或者通过预定义的编译器注释/语法。这些方法虽然有效,但往往无法让用户精确优化不同的计算负荷。因此,性能工程师不得不为特定的优化启发式实施自定义通路,这需要编译工程方面的专业知识。在本文中,我们介绍了一种技术,通过引入 Transform 方言(一种在 MLIR 中实现的基于 IR 的可控转换系统),对通用编译器进行细粒度控制。Transform 方言使性能工程师能够通过组合和重用现有但目前隐藏的编译器功能来优化各种计算负载,而无需实现新的传递,甚至无需重建编译器。我们通过五个案例研究证明,Transform 方言能够精确、安全地组合编译器转换,并允许与最先进的搜索方法直接集成。
The MLIR Transform Dialect. Your compiler is more powerful than you think
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.