학술논문

Bridging Python to Silicon: The SODA Toolchain
Document Type
Periodical
Source
IEEE Micro Micro, IEEE. 42(5):78-88 Jan, 2022
Subject
Computing and Processing
Hardware
Optimization
Synthesizers
Codes
Hardware design languages
Kernel
Field programmable gate arrays
Compiler Techniques
MLIR
High-Level Synthesis
Hardware generation
Silicon Compiler
Language
ISSN
0272-1732
1937-4143
Abstract
Systems performing scientific computing, data analysis, and machine learning tasks have a growing demand for application-specific accelerators that can provide high computational performance while meeting strict size and power requirements. However, the algorithms and applications that need to be accelerated are evolving at a rate that is incompatible with manual design processes based on hardware description languages. Agile hardware design tools based on compiler techniques can help by quickly producing an application-specific integrated circuit (ASIC) accelerator starting from a high-level algorithmic description. We present the software-defined accelerator (SODA) synthesizer, a modular and open-source hardware compiler that provides automated end-to-end synthesis from high-level software frameworks to ASIC implementation, relying on multilevel representations to progressively lower and optimize the input code. Our approach does not require the application developer to write any register-transfer level code, and it is able to reach up to 364 giga floating point operations per second (GFLOPS)/W efficiency (32-bit precision) on typical convolutional neural network operators.