Defense Event

Compiling Stream Applications for Heterogeneous Architectures

Amir Hossein Hormati

Monday, April 18, 2011
10:00am - 12:00pm
3725 Beyster Bldg.

Add to Google Calendar

About the Event

Support for parallelism in hardware has greatly evolved in the past decade as a response to the ever-increasing demand for higher performance and better power efficiency in different application domains. Heterogeneous processing systems have become the industry standard in almost every segment of the computing market from servers to mobile systems. Besides shared/distributed memory processors, the current trend is to use hardware components such as field programmable gate arrays (FPGAs), single instruction multiple data (SIMD) units and graphics processing units (GPUs) in heterogeneous systems. As a result of this shift, extracting maximum performance requires compilation to highly heterogeneous architectures that include components with different memory and computation models. Although there has been significant amount of research on how to program each of these components individually, targeting a heterogeneous system without specializing an application to each component separately is still an open problem. To efficiently exploit future heterogeneous systems, it is necessary to have a unified programming model and compilation system to target various components. In this work, we first focus on enabling a write-once programming paradigm in the context of streaming for various components of the heterogeneous systems. We mainly focus on FPGAs, SIMD engines and GPUs as these components will play an important role in accelerating various parts of applications on heterogeneous systems. First, we introduce several compiler optimizations that facilitate both portability and efficiency. As a result of our compilation system, programmers can write a program only once and efficiently run it on different components of the system. Second, we focus on an important challenge that arises in heterogeneous systems when there are dynamic resource changes. The ability to dynamically adapt a running application to a target architecture in the face of changes in resource availability (e.g., number of cores, available memory or bandwidth) is crucial to a wider adoption of heterogeneous architectures. In this work, we introduce a hybrid flexible compilation framework that facilitates dynamic adaption of applications to the changing characteristics of the underlying architecture.

Additional Information

Sponsor(s): Scott Mahlke

Open to: Public