Edinburgh Research Explorer

Automatic matching of legacy code to heterogeneous APIs: An idiomatic approach

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Related Edinburgh Organisations

Open Access permissions

Open

Documents

https://dl.acm.org/citation.cfm?doid=3173162.3173182
Original languageEnglish
Title of host publication23rd ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS'18)
PublisherACM
Pages139-153
Number of pages14
ISBN (Electronic)978-1-4503-4911-6
DOIs
StatePublished - 19 Mar 2018
EventThe 23rd ACM International Conference on Architectural Support for Programming Languages and Operating Systems - Williamsburg, United States
Duration: 24 Mar 201828 Mar 2018
https://www.asplos2018.org/

Conference

ConferenceThe 23rd ACM International Conference on Architectural Support for Programming Languages and Operating Systems
Abbreviated titleASPLOS2018
CountryUnited States
CityWilliamsburg
Period24/03/1828/03/18
Internet address

Abstract

Heterogeneous accelerators often disappoint. They provide the prospect of great performance, but only deliver it when using vendor specific optimized libraries or domain specific languages. This requires considerable legacy code modifications, hindering the adoption of heterogeneous computing. This paper develops a novel approach that automatically detects opportunities to exploit accelerators. We focus on calculations that are well supported by established APIs: sparse and dense linear algebra, stencils and generalized reductions and histograms.We call such opportunities idioms and use a custom constraint-based Idiom Description Language (IDL) to discover them within user code. Detected idioms are then mapped to BLAS libraries, cuSPARSE and clSPARSE and two DSLs: Halide and Lift. We implemented the approach in LLVM and evaluated it on the NAS and Parboil sequential C/C++ benchmarks, where we detect 60 idiom instances. In those cases where idioms are a significant part of the sequential execution time, we generate code that achieves 1.26× to over 20× speedup on integrated and external GPUs.

Download statistics

No data available

ID: 54253265