Extended Static Control Programs as a Programming Model for Accelerators; A Case Study: Targeting Clear Speed CSX700 with the R-Stream Compiler
Cédric Bastoul, Nicolas Vasilache, Allen Leung, Benoît Meister, David Wohlford, Richard Lethin
Publication Source: The Workshop on Programming Models for Emerging Architectures (PMEA), Raleigh, NC, USA, 2009
Classical compiler technologies are failing to bridge the gap between high performance and productivity in the multicore and massively parallel architecture era. This results in two complementary trends. Firstly, the rise of many new languages to allow the user to conveniently express parallelism. However, those languages may be target-specific like, e.g., CUDA or Cn, and they leave to the programmer the complex task of extracting parallelism even if expressing it may be more convenient using, e.g., Chapel or X10. Secondly, new high-level abstractions like SPIRAL allow performance portability at the price of versatility. In this paper we discuss an alternative way. We consider a restricted class of classical programs known as Extended Static Control Programs as a programming model. We show that using simple rules while writing sequential programs with usual languages like C, our R-Stream R High-Level Compiler can achieve complex mappings to parallel architectures in a fully automatic way. We present our effort to target ClearSpeed CSX700 architecture with specific contributions to avoid costly control overhead.