Title
A MATLAB Vectorizing Compiler Targeting Application-Specific Instruction Set Processors.
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.
Year
DOI
Venue
2017
10.1145/2996182
ACM Trans. Design Autom. Electr. Syst.
Keywords
Field
DocType
MATLAB,compilation,application specific instruction set processor (ASIP),embedded systems,system-on-chip (SoC)
Dead code elimination,Inline expansion,Interprocedural optimization,Programming language,Threaded code,Functional compiler,Computer science,Compiler correctness,Parallel computing,Compiler,Compiler construction
Journal
Volume
Issue
ISSN
22
2
1084-4309
Citations 
PageRank 
References 
0
0.34
11
Authors
7