Robust Automatic Vector Accelerator Compiler
HUSÁR, A. HRUŠKA, T. MASAŘÍK, K.
RAVAC (Robust Automatic Vector Accelerator Compiler) is a tool that discovers vector computations in C language programs that can be off-loaded to programmable or reconfigurable accelerators and transforms input program so that the accelerator is used. Development of this tool was started during the SMECY project in order to automatically compile for the UTIA's ASVP platform and we plan to extend it in the future to a more general tool that is able to use accelerators automatically. Before the RAVAC name was chosen, the developed compiler was in the context of the SMECY project known as BUT compiler of EdkDSP backend. On platforms such as UTIA's ASVP or Xilinx's Zynq, accelerators are loosely coupled, this means that the accelerator has either access to the main memory or has some local memories accessible by the general purpose processor. A tool that aims to automatically use such accelerators has three main responsibilities: 1) identify parts of code that are often executed and can be off-loaded to an accelerator, 2) prepare code and other information for the accelerator, and 3) transform code for the general-purpose processor such that data for the accelerator are prepared and the computation on an accelerator is started.
Vector Accelerator, Compiler