A High-level Synthesis Toolchain for the Julia Language
Benedict Short, Ian McInerney, John Wickerson

TL;DR
This paper introduces a compiler toolchain that translates Julia code into FPGA-compatible hardware descriptions, simplifying the development of problem-specific accelerators and bridging the gap between high-level algorithms and low-level hardware design.
Contribution
It presents a novel MLIR-based compiler that automatically converts Julia kernels into vendor-agnostic RTL for FPGA deployment, eliminating the two-language problem.
Findings
Achieves 59.71% to 82.6% of the throughput of C/C++ FPGA designs.
Supports dynamic and static scheduling with AXI4-Stream integration.
Synthesizes signal processing benchmarks operating at 100MHz on real FPGA devices.
Abstract
With the push towards Exascale computing and data-driven methods, problem sizes have increased dramatically, increasing the computational requirements of the underlying algorithms. This has led to a push to offload computations to general purpose hardware accelerators such as GPUs and TPUs, and a renewed interest in designing problem-specific accelerators using FPGAs. However, the development process of these problem-specific accelerators currently suffers from the "two-language problem": algorithms are developed in one (usually higher-level) language, but the kernels are implemented in another language at a completely different level of abstraction and requiring fundamentally different expertise. To address this problem, we propose a new MLIR-based compiler toolchain that unifies the development process by automatically compiling kernels written in the Julia programming language into…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsEmbedded Systems Design Techniques · Parallel Computing and Optimization Techniques · Numerical Methods and Algorithms
