ScaleHLS: A New Scalable High-Level Synthesis Framework on Multi-Level Intermediate Representation

@article{Ye2021ScaleHLSAN,
  title={ScaleHLS: A New Scalable High-Level Synthesis Framework on Multi-Level Intermediate Representation},
  author={Hanchen Ye and Cong Hao and Jianyi Cheng and Hyunmin Jeong and Jack Huang and Stephen Neuendorffer and Deming Chen},
  journal={2022 IEEE International Symposium on High-Performance Computer Architecture (HPCA)},
  year={2021},
  pages={741-755}
}
  • Hanchen YeCong Hao Deming Chen
  • Published 24 July 2021
  • Computer Science
  • 2022 IEEE International Symposium on High-Performance Computer Architecture (HPCA)
High-level synthesis (HLS) has been widely adopted as it significantly improves the hardware design productivity and enables efficient design space exploration (DSE). Existing HLS tools are built using compiler infrastructures largely based on a single-level abstraction, such as LLVM. How-ever, as HLS designs typically come with intrinsic structural or functional hierarchies, different HLS optimization problems are often better solved with different levels of abstractions. This paper proposes… 

HECTOR: A Multi-Level Intermediate Representation for Hardware Synthesis Methodologies

Hector is proposed, a two-level IR providing a unified intermediate representation for hardware synthesis methodologies that is comparable to that generated by the state-of-the-art HLS tools, and can outperform HLS implementations in performance and productivity.

An MLIR-based Compiler Flow for System-Level Design and Hardware Acceleration

SODA-OPT, a compiler tool that extends the MLIR infrastructure, is introduced and the practical applicability of the compilation flow is demonstrated by exploring the automatic generation of accelerators for deep neural networks operators outlined at arbitrary granularity and by combining outlining with tiling on large convolution layers.

The Support of MLIR HLS Adaptor for LLVM IR

This paper proposes an adaptor for LLVM IR, which can optimize the IR, generated from MLIR, into HLS readable IR, without the gap of unsupported syntax between different versions, so developers could focus on their specialization.

Bridging Python to Silicon: The SODA Toolchain

The software-defined accelerator (SODA) synthesizer is presented, 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.

POLSCA: Polyhedral High-Level Synthesis with Compiler Transformations

POLSCA is a compiler framework that improves polyhedral HLS workflow by automatic code transformation, decomposing a design before polyhedral optimization to balance code complexity and parallelism, while revising memory interfaces of polyhedral-transformed code to make partitioning explicit for HLS tools.

DeepFlexiHLS: Deep Neural Network Flexible High-Level Synthesis Directive Generator

DeepFlexiHLS, a two-stage design space exploration flow to find a set of directives to achieve minimal latency, and forms a Pareto-frontier from which the designer can choose if FPGA resources are limited or are not to be entirely used by the DNN module.

Auto-Partitioning Heterogeneous Task-Parallel Programs with StreamBlocks

This work introduces StreamBlocks, a unified open-source software/FPGA compiler and runtime that takes dataflow programs written in Cal, and automatically partitions them across heterogeneous CPU/ FPGA platforms, and achieves a 4 -- 7× speedup over trivial partitions.

OpenHLS: High-Level Synthesis for Low-Latency Deep Neural Networks for Experimental Science

An open source, lightweight, compiler framework, without any proprietary dependencies, OpenHLS, based on high-level synthesis techniques, for translating high- level representations of deep neural networks to low-level representations, suitable for deployment to near-sensor devices such as field-programmable gate arrays.

Compilation and Optimizations for Efficient Machine Learning on Embedded Systems

A series of e-ective design methodologies, including e-cient ML model designs, customized hardware accelerator designs, and hard-ware/software co-design strategies to enable e-scientific ML applications on embedded systems are introduced.

FSLAM: an Efficient and Accurate SLAM Accelerator on SoC FPGAs

An FPGA based ORB-SLAM system, named FSLAM, that accelerates the computationally intensive visual feature extraction and matching on hardware that achieves high accuracy with reduced computational complexity.

References

SHOWING 1-10 OF 60 REFERENCES

High-Level Synthesis Design Space Exploration: Past, Present, and Future

  • B. C. SchaferZi Wang
  • Computer Science
    IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
  • 2020
This article presents a survey of the different modern high-level synthesis (HLS) design space exploration (DSE) techniques proposed so far and addresses the critical issues still not resolved as well identifies new opportunities in this field.

High-Level Synthesis for FPGAs: From Prototyping to Deployment

AutoESL's AutoPilot HLS tool coupled with domain-specific system-level implementation platforms developed by Xilinx are used as an example to demonstrate the effectiveness of state-of-art C-to-FPGA synthesis solutions targeting multiple application domains.

A study of high-level synthesis: Promises and challenges

This paper studies AutoPilot, a state-of-the-art HLS tool, and examines the suitability of using HLS for a variety of application domains, and provides guidelines for software design, limitations of mapping general purpose software to hardware using H LS, and future directions for HLS tools development.

Pyramid: Machine Learning Framework to Estimate the Optimal Timing and Resource Usage of a High-Level Synthesis Design

The emergence of High-Level Synthesis (HLS) tools shifted the paradigm of hardware design by making the process of mapping high-level programming languages to hardware design such as C to

HLSPredict: Cross Platform Performance Prediction for FPGA High-Level Synthesis

A machine learning framework to predict FPGA performance and power consumption without relying on analytical models or HLS tools in-the-loop is introduced.

Multilevel Granularity Parallelism Synthesis on FPGAs

The proposed Multilevel Granularity Parallelism Synthesis (ML-GPS) framework employs an efficient design space search heuristic in tandem with the estimation models as well as design layout information to derive a performance near-optimal configuration.

LLVM: a compilation framework for lifelong program analysis & transformation

The design of the LLVM representation and compiler framework is evaluated in three ways: the size and effectiveness of the representation, including the type information it provides; compiler performance for several interprocedural problems; and illustrative examples of the benefits LLVM provides for several challenging compiler problems.

A polyhedral-based SystemC modeling and generation framework for effective low-power design space exploration

This work presents an automated SystemC generation and design space exploration flow alleviating several productivity and design time issues encountered in the current design process and builds analytical models of power and performance that can effectively prune away a large amount of inferior design points very fast and generate Pareto-optimal solution points.

High Level Synthesis of Complex Applications: An H.264 Video Decoder

A case study using HLS for a full H.264 decoder for an application with over 6000 lines of code and over 100 functions, and the experience on code conversion for synthesizability, various HLS optimizations, HLS limitations while dealing with complex input code, and general design insights are shared.

MLIR: A Compiler Infrastructure for the End of Moore's Law

Evaluation of MLIR as a generalized infrastructure that reduces the cost of building compilers-describing diverse use-cases to show research and educational opportunities for future programming languages, compilers, execution environments, and computer architecture.
...