IronMan: exploring the power of GNN and RL in EDA
This project explores the power of graph neural network (GNN) and reinforcement learning (RL) in the EDA area: high-level synthesis, specifically. GPP is a highly accurate graph-neural network-based performance and resource predictor; RLMD is a reinforcement-learning-based multi-objective DSE engine for resource allocation; CT is a code transformer that extracts the data flow graph from original HLS C/C++ and generates synthesizable code with new HLS directives.
[Ongoing] Initial results can be found in this paper.
[Ongoing] We're exploring the power of GNNs in broader applications in EDA -- accuracy prediction for approximate computing, circuit quality prediction, etc.
NAIS: Neural Architecture and Implementation Search
This project focuses on a novel co-search methodology beyond NAS (neural architecture search), called NAIS - neural architecture and implementation search. NAIS incorporates hardware implementation search into NAS to produce hardware-efficient AI algorithms as well as optimized hardware implementations, within limited hardware resource and performance constraints.
[Publications] DAC'19, ICCAD'19, DAC'20
[Ongoing] We are exploring NAIS for multi-modal multi-task (MMMT) neural networks targeting heterogeneous platforms
Graph-based Computation Acceleration
This project focuses on sw/hw co-design for graph-based computation and processing, such as graph neural network and graph algorithms (pagerank, recommender system, etc.), for acceleration, memory reduction, or energy reduction.
[Publications] DAC'21 (coming soon)
[Ongoing] We are exploring more optimization opportunities of acceleration and memory reduction through both algorithm and dedicated hardware architecture.
HLS: High-Level Synthesis assisting hardware design
High-Level Synthesis (HLS) is an automated design process that interprets an algorithmic description (C, C++, SystemC, etc.) of the desired behavior and creates digital hardware (VHDL, Verilog, etc.) that implements that behavior [ref]. HLS greatly boosts productivity for hardware development such as ASIC and FPGA design.
Our main research interests include:
[past] Traditional HLS: core algorithms such as operation scheduling, functional unit and register binding.
[current] Modern HLS: domain-specific (machine learning, graph processing) HLS, HLS for heterogeneous platforms, etc.
[current] HLS design space exploration: to further alleviate human efforts
[future] HLS for agile development!
FPGA Acceleration for DNNs
We have proposed three levels of key techniques for FPGA acceleration for DNNs, including:
Bit-level: low-loss low-bit data quantization techniques.
Module-level: high efficiency computing unit, i.e., IP cores on FPGA. Such IPs are open-sourced and are written in C, which can be synthesized using HLS tools.
Architecture-level: a fine-grained, tile-based low-latency FPGA accelerator.
ML algorithm and system for autonomous driving
We proposed a hybrid GPU + FPGA platform for autonomous driving cars, which introduces redundancy into system for reliability: the FPGA system acts as a fallback system when GPU failure occurs. In addition, hardware heterogeneity decouples the development of the main driving task and safe-mode driving task, as well as the development of GPU and FPGA algorithms.
We're also working on 2D/3D object detection for autonomous driving ith/without lidar sensors.