Mapping streaming applications to OpenCL

Graphic processing units (GPUs) as hardware platforms have been gaining popularity in general purpose and high performance computing. A GPU is made up of a number of streaming multiprocessors (SM), each of which consists of many processing cores. A large number of general-purpose application...

Full description

Saved in:
Bibliographic Details
Main Author: Abhishek Ray
Other Authors: Stephen John Turner
Format: Final Year Project
Language:English
Published: 2012
Subjects:
Online Access:http://hdl.handle.net/10356/48786
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Nanyang Technological University
Language: English
Description
Summary:Graphic processing units (GPUs) as hardware platforms have been gaining popularity in general purpose and high performance computing. A GPU is made up of a number of streaming multiprocessors (SM), each of which consists of many processing cores. A large number of general-purpose applications have been mapped onto GPUs efficiently. Stream processing applications, however, exhibit properties such as unfavorable data movement patterns and low computation-to-communication ratio that might lead to a poor performance on a GPU. OpenCL is an open and free standard from Khronos Group [17]. It allows programs to be developed for and executed on multiple platforms like CPUs, GPUs, FPGAs, DSPs and many more. Firstly, this project introduces the automated mapping framework developed earlier that maps most stream processing applications onto NVIDIA GPUs efficiently by taking into account its architectural characteristics. Secondly, it discusses the implementation details of porting the mapping framework onto AMD GPUs and evaluates the performance of the mapping framework by running several benchmarks. Lastly, it compares the performance between the mapping frameworks on two different architectures and presents a fair performance comparison between the two different architectures.