TABC: The Compiler of the TABLA Framework
Kim, Joon Kyung
MetadataShow full item record
TABLA is an innovative framework that accelerates statistical machine learning algorithms. Given the programmer’s code, TABLA generates a hardware accelerator, in the form of synthesizable Verilog code. It contains a set of template hardware components pre-designed by expert hardware designers. Given the input code, TABLA generates multiples of this component in order to maximize parallelism. By automating this process, TABLA alleviates the arduous task of custom hardware de- sign from software engineers. TABLA-generated accelerators show significant speedup over commercially available CPU and GPU platforms. TABLA provides a new domain specific language. It is designed to make implementation of statistical machine learning algorithms easier. The compiler’s primary job is to schedule the order of operations that yields the most optimal runtime performance. The first step is a data dependency analysis. This information is stored in the form of dataflow graph. It consists of nodes and edges that represent mathematical operations and dependencies, respectively. Dataflow graph is essential information needed by the scheduling algorithm. Optimal scheduling is crucial to improving the performance of the target algorithms. The primary purpose of this paper is to describe the design and implementation of the compiler in detail.