A Programming Language Interface to Describe Transformations and Code Generation

被引:22
|
作者
Rudy, Gabe [1 ]
Khan, Malik Murtaza [2 ]
Hall, Mary [1 ]
Chen, Chun [1 ]
Chame, Jacqueline [2 ]
机构
[1] Univ Utah, Sch Comp, Salt Lake City, UT 84112 USA
[2] USC Informat Sci Inst, Marina Del Rey, CA 90295 USA
基金
美国国家科学基金会;
关键词
LOOP; PARALLELISM;
D O I
10.1007/978-3-642-19595-2_10
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
This paper presents a programming language interface, a complete scripting language, to describe composable compiler transformations. These transformation programs can be written, shared and reused by non-expert application and library developers. From a compiler writer's perspective, a scripting language interface permits rapid prototyping of compiler algorithms that can mix levels and compose different sequences of transformations, producing readable code as output. From a library or application developer's perspective, the use of transformation programs permits expression of clean high-level code, and a separate description of how to map that code to architectural features, easing maintenance and porting to new architectures. We illustrate this interface in the context of CUDA-CHiLL, a source-to-source compiler transformation and code generation framework that transforms sequential loop nests to high-performance CPU code. We show how this high-level transformation and code generation language can be used to express: (1) complex transformation sequences, exemplified by a single loop restructuring construct used to generate a series of tiling and permute commands; and, (2) complex code generation sequences to produce CUDA code from a high-level specification. We demonstrate that the automatically-generated code either performs closely or outperforms two hand-tuned CPU library kernels from Nvidia's CUBLAS 2.2 and 3.2 libraries.
引用
收藏
页码:136 / +
页数:4
相关论文
共 50 条
  • [41] A dynamic programming approach to optimal integrated code generation
    Kessler, C
    Bednarski, A
    ACM SIGPLAN NOTICES, 2001, 36 (08) : 165 - 174
  • [42] Template-based generation of programming language specific code for smart grid modelling compliant with CIM and CGMES
    Dinkelbach, Jan
    Razik, Lukas
    Mirz, Markus
    Benigni, Andrea
    Monti, Antonello
    JOURNAL OF ENGINEERING-JOE, 2023, 2023 (01):
  • [43] Code generation for a DNA computer by integer linear programming
    Abe, S
    Hagiya, M
    Nakajima, T
    2004 IEEE CONFERENCE ON CYBERNETICS AND INTELLIGENT SYSTEMS, VOLS 1 AND 2, 2004, : 268 - 273
  • [44] Genetic Programming-Based Code Generation for Arduino
    Ferrel, Wildor
    Alfaro, Luis
    INTERNATIONAL JOURNAL OF ADVANCED COMPUTER SCIENCE AND APPLICATIONS, 2020, 11 (11) : 538 - 549
  • [45] Genetic Programming-Based Code Generation for Arduino
    Ferrel W.
    Alfaro L.
    1600, Science and Information Organization (11): : 538 - 549
  • [46] Efficient code generation for a domain specific language
    Moss, A
    Muller, H
    GENERATIVE PROGRAMMING AND COMPONENT ENGINEERING, PROCEEDINGS, 2005, 3676 : 47 - 62
  • [47] IDEVELOPAR: A Programming Interface to enhance Code Understanding in Augmented Reality
    Kreber, Lucas
    Diehl, Stephan
    Weil, Patrick
    2022 WORKING CONFERENCE ON SOFTWARE VISUALIZATION (IEEE VISSOFT), 2022, : 87 - 95
  • [48] Automatic generation of quizzes for C programming language
    Ene, Alexandru
    Stirbu, Cosmin
    PROCEEDINGS OF THE 2020 12TH INTERNATIONAL CONFERENCE ON ELECTRONICS, COMPUTERS AND ARTIFICIAL INTELLIGENCE (ECAI-2020), 2020,
  • [49] A PROGRAMMING LANGUAGE WITH AUTOMATIC GOAL GENERATION AND SELECTION
    NEVINS, AJ
    JOURNAL OF THE ACM, 1970, 17 (02) : 216 - &
  • [50] Intelligent Tutor for Designing Function Interface in a Programming Language
    Litovkin, Dmitrii
    Anikin, Anton
    Kulyukin, Kirill
    Sychev, Oleg
    INTELLIGENT TUTORING SYSTEMS, ITS 2022, 2022, 13284 : 293 - 302