Back to Search Start Over

A MATLAB Vectorizing Compiler Targeting Application-Specific Instruction Set Processors

Authors :
Christakis Lezos
Konstantinos Masselos
Hans Cappelle
Karthick Parashar
Ioannis Latifis
Francky Catthoor
Grigoris Dimitroulakos
Source :
ACM Transactions on Design Automation of Electronic Systems. 22:1-28
Publication Year :
2017
Publisher :
Association for Computing Machinery (ACM), 2017.

Abstract

This article discusses a MATLAB-to-C vectorizing compiler that exploits custom instructions, for example, for Single Instruction Multiple Data (SIMD) processing and instructions for complex arithmetic present in Application-Specific Instruction Set Processors (ASIPs). Custom instructions are represented via specialized intrinsic functions in the generated code, and the generated code can be used as input to any C/C++ compiler supporting the target processor. Furthermore, the specialized instruction set of the target processor is described in a parameterized way using a target processor-independent architecture description approach, thus allowing the support of any processor. The compiler has been used for the generation of application code for two different ASIPs for several benchmarks. The code generated by the compiler achieves a speedup between 2× --74× and 2× --97× compared to the code generated by the MathWorks MATLAB-to-C compiler. Experimental results also prove that the compiler efficiently exploits SIMD custom instructions achieving a 3.3 factor speedup compared to cases where no SIMD processing is used. Thus the compiler can be employed to reduce the development time/effort/cost and time to market through raising the abstraction of application design in an embedded systems/system-on-chip development context.

Details

ISSN :
15577309 and 10844309
Volume :
22
Database :
OpenAIRE
Journal :
ACM Transactions on Design Automation of Electronic Systems
Accession number :
edsair.doi...........d35bbecfa80d1eafffd339153f596a71
Full Text :
https://doi.org/10.1145/2996182