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
id sg-ntu-dr.10356-81361
record_format dspace
spelling sg-ntu-dr.10356-813612020-05-28T07:17:22Z A Code Generation Framework for Targeting Optimized Library Calls for Multiple Platforms Tan, Wen Jun Tang, Wai Teng Goh, Rick Siow Mong Turner, Stephen John Wong, Weng-Fai School of Computer Engineering OpenMP OpenACC Multicore CPU GPU Code generation 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. ASTAR (Agency for Sci., Tech. and Research, S’pore) Accepted version 2015-12-23T08:52:13Z 2019-12-06T14:29:15Z 2015-12-23T08:52:13Z 2019-12-06T14:29:15Z 2015 Journal Article Tan, W. J., Tang, W. T., Goh, R. S. M., Turner, S. J., & Wong, W.-F. (2015). A Code Generation Framework for Targeting Optimized Library Calls for Multiple Platforms. IEEE Transactions on Parallel and Distributed Systems, 26(7), 1789-1799. 1045-9219 https://hdl.handle.net/10356/81361 http://hdl.handle.net/10220/39223 10.1109/TPDS.2014.2329494 en IEEE Transactions on Parallel and Distributed Systems © 2015 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting/republishing this material for advertising or promotional purposes, creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other works. The published version is available at: [http://dx.doi.org/10.1109/TPDS.2014.2329494]. 12 p. application/pdf
institution Nanyang Technological University
building NTU Library
country Singapore
collection DR-NTU
language English
topic OpenMP
OpenACC
Multicore CPU
GPU
Code generation
spellingShingle OpenMP
OpenACC
Multicore CPU
GPU
Code generation
Tan, Wen Jun
Tang, Wai Teng
Goh, Rick Siow Mong
Turner, Stephen John
Wong, Weng-Fai
A Code Generation Framework for Targeting Optimized Library Calls for Multiple Platforms
description 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.
author2 School of Computer Engineering
author_facet School of Computer Engineering
Tan, Wen Jun
Tang, Wai Teng
Goh, Rick Siow Mong
Turner, Stephen John
Wong, Weng-Fai
format Article
author Tan, Wen Jun
Tang, Wai Teng
Goh, Rick Siow Mong
Turner, Stephen John
Wong, Weng-Fai
author_sort Tan, Wen Jun
title A Code Generation Framework for Targeting Optimized Library Calls for Multiple Platforms
title_short A Code Generation Framework for Targeting Optimized Library Calls for Multiple Platforms
title_full A Code Generation Framework for Targeting Optimized Library Calls for Multiple Platforms
title_fullStr A Code Generation Framework for Targeting Optimized Library Calls for Multiple Platforms
title_full_unstemmed A Code Generation Framework for Targeting Optimized Library Calls for Multiple Platforms
title_sort code generation framework for targeting optimized library calls for multiple platforms
publishDate 2015
url https://hdl.handle.net/10356/81361
http://hdl.handle.net/10220/39223
_version_ 1681056479115739136