Courier: A toolchain for application acceleration on heterogeneous platforms

Takaaki Miyajima, David Thomas, Hideharu Amano

Research output: Contribution to journalArticle

Abstract

Computationally intensive applications using an open-source library such as OpenCV, BLAS or FFT are widely available on various research or industry applications. Although the optimized code of such libraries has been prepared for an accelerator, off-loading is difficult for non-expert users, especially when only binary of applications can be accessed. This paper presents a new toolchain for application acceleration called Courier. It only requires a executable binary of the target application and a corresponding function code for an accelerator. Besides, it doesn't require a source code of the application nor re-compilation of the binary. A work-flow of Courier is a simple and intended for non-expert users. It extracts runtime information from running binary, generates task graph, and then replaces the original function with a corresponding accelerator function. Many steps along with the application acceleration process are automatically executed. The users can refer to the acceleration result and modify the task graph if needed. In our case studies, Courier was used for acceleration of three applications; image processing, matrix multiplication and spectrum analysis. Functions are off-loaded to a GPU without any modification to the original source code. Applications are sped up 8.89, 8.16 and 1.23 times, respectively.

Original languageEnglish
Pages (from-to)105-115
Number of pages11
JournalIPSJ Transactions on System LSI Design Methodology
Volume8
DOIs
Publication statusPublished - 2015 Feb 1

    Fingerprint

Keywords

  • Algorithm implementation
  • Automation tool
  • Heterogeneous platform

ASJC Scopus subject areas

  • Electrical and Electronic Engineering
  • Computer Science Applications

Cite this