Improving GNU Compiler Collection Infrastructure for Streamization
نویسندگان
چکیده
GNU Compiler Collection (GCC) needs a strategy to support future multicore architectures, which will probably include heterogeneous accelerator-like designs with explicit management of scratchpad memories. Some have further restrictions; for example, SIMD has limited synchronization capabilities. Some platforms will probably offer hardware support for streaming, transactions, and speculation. The purpose of this paper is to survey and evaluate some automatic and manual techniques for improving support for such targets in GCC. We focus on translation of sequential code for such platforms, i.e., the translation to task graphs and their communication and memory access operations. The paper provides an evaluation of the communication library support on an AMD PhenomT M X4 9550 quad-core processor. We use these experiments to tune the automatic task partitioning algorithm implemented in GCC. The paper concludes with recommendations for strategic developments of GCC to support a stream programming language and improve the automatic generation of streamized tasks.
منابع مشابه
An Evaluation of the New Framework for Loop Nest Optimization in GCC
This paper presents an evaluation of the new framework for loop nest optimization of the GNU Compiler Collection (GCC). Multiple structural and experimental aspects of this infrastructure are considered: performance of the generated code, effectiveness of the analyzers and optimizers, compilation overhead, together with possible improvements. The evaluation is based on the SPEC CPU2000 and Java...
متن کاملAutomatic Streamization in GCC
Multi-cores and multi-processors became ubiquitous during the last few years, and the trend is to increase the number of simple, power-efficient, and slower cores per chip. One of the results is that the performance of single-threaded applications did not significantly improve, or even declined, on new processors, which heightened the interest in compiler automatic parallelization techniques. O...
متن کاملA Compile-Time Infrastructure for GCC Using Haskell (extended version)
This project aims to improve the metaprogramming and verification capabilities of the GNU Compiler Collection. It consists of a plugin infrastructure that exposes two compile-time mechanisms. The first of these is a mechanism by which one may perform arbitrary computations over types within the context of the C++ template metaprogramming infrastructure. The second of these exposes selected port...
متن کاملA Compile-Time Infrastructure for GCC Using Haskell
This project aims to improve the metaprogramming and verification capabilities of the GNU Compiler Collection. It consists of a plugin infrastructure that exposes two compile-time mechanisms. The first of these is a mechanism by which one may perform arbitrary computations over types within the context of the C++ template metaprogramming infrastructure. The second of these exposes selected port...
متن کاملTree SSA – A New High-Level Optimization Framework for the GNU Compiler Collection∗
In this paper we introduce Tree SSA, a new optimization framework for the GNU Compiler Collection (GCC) based on the Static Single Assignment form. The paper provides a brief historical perspective on GCC’s development, the rationale behind the new framework and its potential applications. We will also discuss some of the analyses and optimizations that are being designed and implemented on top...
متن کامل