Coder Social home page Coder Social logo

autodnnchip's Introduction

AutoDNNchip

This is a Python implementation of the conference paper AutoDNNchip: An Automated DNN Chip Predictor and Builder for Both FPGAs and ASICs at FPGA'20.

Chip Predictor requirement: Python 3.6 (conda environment based on conda_env.yml).

AutoDNNchip Generated FPGA design requirement: Xilinx Ultra96 FPGA.

Preparation

Add your hardware library to ./hw_libs.

Generate a graph definition based on templates or from scratch

Change the hardware configuration files ./template_config and generate a graph based on graph templates. An example:

$ python main_def_graph_from_template.py --template systolic2x --template_config template_config/systolic2x_3.js --store graph_defs/systolic2x_3x3.graph

Or build a graph definition from scratch. An example:

$ python main_def_graph_from_scratch.py --store graph_defs/conv_eg.graph

Run the cycle by cycle simulation of Chip Predictor based on graph definition

$ python main_sim_from_graph.py --graph_def graph_def_file | tee log_file

An example:

$ python main_sim_from_graph.py --graph_def graph_defs/conv_eg.graph | tee logs/conv_eg.log

Run the optimized design on Ultra96 FPGA

We compare our optimized FPGA design with the champaign-winning design in the 56th IEEE/ACM Design Automation Conference System Design Contest (DAC-SDC). To run the baseline design and our optimized design, first download the sampled test images, copy the ./optimized_ultra96 to your FPGA, then run:

$ sudo python3 main.py --option optimized

and

$ sudo python3 main.py --option baseline

Publication

If you use this github repo, please cite our FPGA'20 paper:

@article{xu2020autodnnchip,
  title={AutoDNNchip: An Automated DNN Chip Predictor and Builder for Both FPGAs and ASICs},
  author={Xu, Pengfei and Zhang, Xiaofan and Hao, Cong and Zhao, Yang and Zhang, Yongan and Wang, Yue and Li, Chaojian and Guan, Zetong and Chen, Deming and Lin, Yingyan},
  journal={Int'l Symp. on Field-Programmable Gate Arrays (FPGA)},
  year={2020}
}

Acknowledgement

  • The FPGA implementation is inspired by SkyNet.

autodnnchip's People

Contributors

iso-p avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.