A Code Generation Framework for Targeting Optimized Library Calls for Multiple Platforms

Directive-based programming approaches such as OpenMP and OpenACC have gained popularity due to their ease of programming. These programming models typically involve adding compiler directives to code sections such as loops in order to parallelize them for execution on multicore CPUs or GPUs. Howeve...

Full description

Saved in:
Bibliographic Details
Main Authors: Tan, Wen Jun, Tang, Wai Teng, Goh, Rick Siow Mong, Turner, Stephen John, Wong, Weng-Fai
Other Authors: School of Computer Engineering
Format: Article
Language:English
Published: 2015
Subjects:
GPU
Online Access:https://hdl.handle.net/10356/81361
http://hdl.handle.net/10220/39223
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Nanyang Technological University
Language: English
Description
Summary:Directive-based programming approaches such as OpenMP and OpenACC have gained popularity due to their ease of programming. These programming models typically involve adding compiler directives to code sections such as loops in order to parallelize them for execution on multicore CPUs or GPUs. However, one problem with this approach is that existing compilers generate code directly from the annotated sections and do not make use of hardware-specific architectural features. As a result, the generated code is unable to fully exploit the capabilities of the underlying hardware. Alternatively, we propose a code generation framework in which linear algebraic operations in the annotated codes are recognized, extracted and mapped to optimized vendor-provided platform-specific library calls. We demonstrate that such an approach can result in better performance in the generated code compared to those which are generated by existing compilers. This is substantiated by experimental results on multicore CPUs and GPUs.