Skip to content

PowerGear: Early-Stage Power Estimation in FPGA HLS via Heterogeneous Edge-Centric GNNs

License

Notifications You must be signed in to change notification settings

ZIKEYUAN/PowerGear

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PowerGear: Early-Stage Power Estimation in FPGA HLS via Heterogeneous Edge-Centric GNNs

We propose PowerGear, a graph-learning-assisted power estimation approach for FPGA HLS, which features high accuracy, efficiency and transferability. PowerGear comprises two main components:

  • a graph construction flow
  • a customized graph neural network (GNN) model

Compared with on-board measurement, PowerGear estimates total and dynamic power for new HLS designs with errors of 3.60% and 8.81%, respectively, which outperforms the prior arts in research and the commercial product Vivado. In addition, PowerGear demonstrates a speedup of 4× over Vivado power estimator. Finally, we present a case study in which PowerGear is exploited to facilitate design space exploration for FPGA HLS, leading to a performance gain of up to 11.2%, compared with methods using state-of-the-art predictive models.

@inproceedings{lin2022powergear,
  title={PowerGear: Early-Stage Power Estimation in FPGA HLS via Heterogeneous Edge-Centric GNNs},
  author={Lin, Zhe and Yuan, Zike and Zhao, Jieru and Zhang, Wei and Wang, Hui and Tian, Yonghong},
  booktitle={{Proc. of Design, Automation and Test in Europe Conference(DATE 2022)},
  year={2022}
}

PowerGear Overview

In the training stage, graph- structured samples are constructed using HLS results, ground truth power values are collected from real measurement on board after RTL implementation, and a transferable GNN model is trained; in the inference stage, graph samples for new designs are generated after HLS runs and the trained GNN model is seamlessly employed for power prediction.

How to construct graphs

Please look the details in Readme.md of each task inside graph_construction folder. All the information of code can be found in this folder.

How to train, test and evaluate our models

Please look the details in Readme.md of each task inside HEC_GNN folder. All the information of code, and pretrained models can be found in this folder.

File Architecture

.
├── dataset                         # Paper dataset
│   ├── benchmark                   # Benchmark application
│   └── graph_sample                # Graph sample dataset used in HEC_GNN                             
├── hec_gnn                         # The HEC_GNN model
│   ├── cov                         # Graph convolution layer
│   ├── ensemble_model              # Ensemble model
│   ├── single_model                # Single model
│   ├── HEC_GNN_env_install.sh      # The environment installation script
│   └── README.md                   
├── graph_construction              # The graph construction
│   ├── README.md                 
│   ├── feature_extraction          # Feature extraction flow
│   └── sample_generation           # Sample generation flow
├── paper_model                     # Trained model in our paper
│   ├── test_result                 # The test results for each dataset in our paper.
│   └── trained_model               # The trained model for each dataset in our paper.
├── pic                             
├── utils                           # Some basic functions
└── DATE_22_PowerGear.pdf           # Paper

License

MIT License

Contact

For more information please contact Zhe Lin, Zike Yuan.

Zhe Lin : [email protected]

Zike Yuan: [email protected]

About

PowerGear: Early-Stage Power Estimation in FPGA HLS via Heterogeneous Edge-Centric GNNs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Verilog 28.4%
  • Ada 27.4%
  • V 16.5%
  • Python 10.6%
  • C++ 10.2%
  • SystemVerilog 4.8%
  • Other 2.1%