Explicitly managed memory many-cores (EMM) have been a part of the industrial landscape for the last decade. The IBM CELL processor, general-purpose graphics processing units (GP-GPU) and the STHORM embedded many-core of STMicroelectronics are representative examples. This class of architecture is expected to scale well and to deliver good performance per watt and per mm2 of silicon. As such, it is appealing for application problems with regular data access patterns. However, this moves significant complexity to the programmer who must master parallelization and data movement. High level programming tools are therefore essential in order to allow the effective programming of EMM many-cores to a wide class of programmers. This paper presents a novel approach designed for simplifying the programming of EMM many-core architectures. It initially addresses the image processing application domain and has been targeted to the STHORM platform. It takes a high-level description of the computation kernel algorithm and generates an OpenCL kernel optimized for the target architecture, while managing the parallelization and data movements across the hierarchy in a transparent fashion. The goal is to provide both high productivity and high performance without requiring parallel computing expertise from the programmer, nor the need for application code specialization for the target architecture.
[1]
Henry Hoffmann,et al.
StreamIt: A Compiler for Streaming Applications ⁄
,
2002
.
[2]
Luca Benini,et al.
Platform 2012, a many-core computing accelerator for embedded SoCs: Performance evaluation of visual analytics applications
,
2012,
DAC Design Automation Conference 2012.
[3]
Tom Drummond,et al.
Machine Learning for High-Speed Corner Detection
,
2006,
ECCV.
[4]
William Thies,et al.
StreamIt: A Language for Streaming Applications
,
2002,
CC.
[5]
Selma Saidi,et al.
Optimal 2D Data Partitioning for DMA Transfers on MPSoCs
,
2012,
2012 15th Euromicro Conference on Digital System Design.
[6]
Frédo Durand,et al.
Decoupling algorithms from schedules for easy optimization of image processing pipelines
,
2012,
ACM Trans. Graph..
[7]
Edward A. Lee,et al.
Software Synthesis from Dataflow Graphs
,
1996
.
[8]
Edward A. Lee,et al.
Static Scheduling of Synchronous Data Flow Programs for Digital Signal Processing
,
1989,
IEEE Transactions on Computers.