Interactive Source-to-Source Optimizations Validated using Static Resource Analysis

被引:0
|
作者
Bertholon, Guillaume [1 ]
Chargueraud, Arthur
Koehler, Thomas
Bytyqi, Begatim
Rouhling, Damien
机构
[1] INRIA, Strasbourg, France
关键词
High performance code; Source-to-source optimization; Separation logic;
D O I
10.1145/3652588.3663320
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
Developments in hardware have delivered formidable computing power. Yet, the increased hardware complexity has made it a real challenge to develop software that exploits the hardware to its full potential. Numerous approaches have been explored to help programmers turn naive code into high-performance code, finely tuned for the targeted hardware. However, these approaches have inherent limitations, and it remains common practice for programmers seeking maximal performance to follow the tedious and error-prone route of writing optimized code by hand. This paper presents OptiTrust, an interactive source-to-source optimization framework that operates on generalpurpose C code. The programmer develops a script describing a series of code transformations. The framework provides continuous feedback in the form of human-readable diff s over conventional C code. OptiTrust supports advanced code transformations, including transformations exploited by the state-of-the-art DSL tools Halide and TVM, and transformations beyond the reach of existing tools. OptiTrust also supports user-defined transformations, as well as defining complex transformations by composition of simpler transformations. Crucially, to check the validity of code transformations, OptiTrust leverages a static resource analysis in a simplified form of Separation Logic. Starting from user-provided annotations on functions and loops, our analysis deduces precise resource usage throughout the code.
引用
收藏
页码:26 / 34
页数:9
相关论文
共 50 条
  • [1] A source-to-source architecture for user-defined optimizations
    Schordan, M
    Quinlan, D
    [J]. MODULAR PROGRAMMING LANGUAGES, PROCEEDINGS, 2003, 2789 : 214 - 223
  • [2] Scout: A Source-to-Source Transformator for SIMD-Optimizations
    Krzikalla, Olaf
    Feldhoff, Kim
    Mueller-Pfefferkorn, Ralph
    Nagel, Wolfgang E.
    [J]. EURO-PAR 2011: PARALLEL PROCESSING WORKSHOPS, PT II, 2012, 7156 : 137 - 145
  • [3] A Datalog Source-To-Source Translator for Static Program Analysis: An Experience Report
    Vorobyov, Bernhard Scholz Kostyantyn
    Krishnan, Padmanabhan
    Westmann, Till
    [J]. 2015 24TH AUSTRALASIAN SOFTWARE ENGINEERING CONFERENCE (ASWEC 2015), 2015, : 28 - 37
  • [4] Pointer analysis for source-to-source transformations
    Buss, M
    Edwards, SA
    Yao, B
    Waddington, D
    [J]. Fifth IEEE International Workshop on Source Code Analysis and Manipulation, Proceedings, 2005, : 139 - 148
  • [5] Experiences in using Cetus for source-to-source transformations
    Johnson, TA
    Lee, SI
    Fei, L
    Basumallik, A
    Upadhyaya, G
    Eigenmann, R
    Midkiff, SP
    [J]. LANGUAGES AND COMPILERS FOR HIGH PERFORMANCE COMPUTING, 2005, 3602 : 1 - 14
  • [6] Using Source-to-Source Compilation to Instrument Circuits for Debug with High Level Synthesis
    Monson, Joshua S.
    Hutchings, Brad
    [J]. 2015 INTERNATIONAL CONFERENCE ON FIELD PROGRAMMABLE TECHNOLOGY (FPT), 2015, : 48 - 55
  • [7] An Abstract Analysis Framework for Synchronous Concurrent Languages based on source-to-source Transformation
    Alpuente, M.
    Gallardo, M. M.
    Pimentel, E.
    Villanueva, A.
    [J]. ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2008, 206 : 3 - 21
  • [8] Clava: C/C plus plus source-to-source compilation using LARA
    Bispo, Joao
    Cardoso, Joao M. P.
    [J]. SOFTWAREX, 2020, 12
  • [9] Using Source-to-Source Transformation Tools to Provide Distributed Parallel Applications from OpenMP Source Code
    Renault, Eric
    [J]. PROCEEDINGS OF THE INTERNATIONAL SYMPOSIUM ON PARALLEL AND DISTRIBUTED COMPUTING, 2008, : 197 - 204
  • [10] OP2-Clang: A Source-to-Source Translator Using Clang/LLVM LibTooling
    Balogh, G. D.
    Mudalige, G. R.
    Reguly, I. Z.
    Antao, S. F.
    Bertolli, C.
    [J]. PROCEEDINGS OF LLVM-HPC 2018: IEEE/ACM 5TH WORKSHOP ON THE LLVM COMPILER INFRASTRUCTURE IN HPC (LLVM-HPC), 2018, : 59 - 70