TY - GEN
T1 - A common backend for hardware acceleration on FPGA
AU - Del Sozzo, Emanuele
AU - Baghdadi, Riyadh
AU - Amarasinghe, Saman
AU - Santambrogio, Marco D.
N1 - Publisher Copyright:
© 2017 IEEE.
PY - 2017/11/22
Y1 - 2017/11/22
N2 - Field Programmable Gate Arrays (FPGAs) are configurable integrated circuits able to provide a good trade-off in terms of performance, power consumption, and flexibility with respect to other architectures, like CPUs, GPUs and ASICs. The main drawback in using FPGAs, however, is their steep learning curve. An emerging solution to this problem is to write algorithms in a Domain Specific Language (DSL) and to let the DSL compiler generate efficient code targeting FPGAs. This work proposes FROST, a unified backend that enables different DSL compilers to target FPGA architectures. Differently from other code generation frameworks targeting FPGA, FROST exploits a scheduling co-language that enables users to have full control over which optimizations to apply in order to generate efficient code (e.g. loop pipelining, array partitioning, vectorization). At first, FROST analyzes and manipulates the input Abstract Syntax Tree (AST) in order to apply FPGA-oriented transformations and optimizations, then generates a C/C++ implementation suitable for High-Level Synthesis (HLS) tools. Finally, the output of HLS phase is synthesized and implemented on the target FPGA using Xilinx SDAccel toolchain. The experimental results show a speedup up of 15 with respect to O3-optimized implementations of the same algorithms on CPU.
AB - Field Programmable Gate Arrays (FPGAs) are configurable integrated circuits able to provide a good trade-off in terms of performance, power consumption, and flexibility with respect to other architectures, like CPUs, GPUs and ASICs. The main drawback in using FPGAs, however, is their steep learning curve. An emerging solution to this problem is to write algorithms in a Domain Specific Language (DSL) and to let the DSL compiler generate efficient code targeting FPGAs. This work proposes FROST, a unified backend that enables different DSL compilers to target FPGA architectures. Differently from other code generation frameworks targeting FPGA, FROST exploits a scheduling co-language that enables users to have full control over which optimizations to apply in order to generate efficient code (e.g. loop pipelining, array partitioning, vectorization). At first, FROST analyzes and manipulates the input Abstract Syntax Tree (AST) in order to apply FPGA-oriented transformations and optimizations, then generates a C/C++ implementation suitable for High-Level Synthesis (HLS) tools. Finally, the output of HLS phase is synthesized and implemented on the target FPGA using Xilinx SDAccel toolchain. The experimental results show a speedup up of 15 with respect to O3-optimized implementations of the same algorithms on CPU.
KW - DSL
KW - FPGA
KW - FROST
KW - common backend
KW - scheduling co-language
UR - http://www.scopus.com/inward/record.url?scp=85041695504&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85041695504&partnerID=8YFLogxK
U2 - 10.1109/ICCD.2017.75
DO - 10.1109/ICCD.2017.75
M3 - Conference contribution
AN - SCOPUS:85041695504
T3 - Proceedings - 35th IEEE International Conference on Computer Design, ICCD 2017
SP - 427
EP - 430
BT - Proceedings - 35th IEEE International Conference on Computer Design, ICCD 2017
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - 35th IEEE International Conference on Computer Design, ICCD 2017
Y2 - 5 November 2017 through 8 November 2017
ER -