Coder Social home page Coder Social logo

jjjscott / improving_per_esti_for_fpga-based_acc_for_cnns-arc2020 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from martinferianc/improving_per_esti_for_fpga-based_acc_for_cnns-arc2020

0.0 0.0 0.0 1.94 MB

A codebase accompanying the paper "Improving Performance Estimation for FPGA-based Accelerators for Convolutional Neural Networks", by Ferianc et al. presented at ARC'2020

Home Page: https://arxiv.org/abs/2002.00190

License: Apache License 2.0

Jupyter Notebook 100.00%

improving_per_esti_for_fpga-based_acc_for_cnns-arc2020's Introduction

Improving Performance Estimation for FPGA-based Accelerators for Convolutional Neural Networks

A codebase accompanying the paper "Improving Performance Estimation for FPGA-based Accelerators for Convolutional Neural Networks", by Ferianc et al. presented at ARC'2020. The paper is in the repository under paper.pdf accompanied by a presentation under presentation.pdf.

  1. Abstract
  2. Tutorial
  3. Requirements
  4. Running
  5. Paper
  6. Citation
  7. Authors
  8. News

Abstract

Field-programmable gate array (FPGA) based accelerators are being widely used for acceleration of convolutional neural networks (CNNs) due to their potential in improving the performance and reconfigurability for specific application instances. To determine the optimal configuration of an FPGA-based accelerator, it is necessary to explore the design space and an accurate performance prediction plays an important role during the exploration. This work introduces a novel method for fast and accurate estimation of latency based on a Gaussian process parametrised by an analytic approximation and coupled with runtime data. The experiments conducted on three different CNNs on an FPGA-based accelerator on Intel Arria 10 GX 1150 demonstrated a 30.7% improvement in accuracy with respect to the mean absolute error in comparison to a standard analytic method in leave-one-out cross-validation.

Tutorial

The tutorial does not involve running and training the estimator on the real data (which is propriatery), it only demonstrates how to build in an analytic mean function that can then later be used inside a a Gaussian process. In order to be able to run the code or build your own estimator follow the steps below.

Requirements

The requirements to run the code are in requirements.txt. The required libraries are:

numpy
gpflow<=1.5.1
tensorflow<2.0.0
ipykernel
scipy
sklearn

To install them create a virtual environemnt for Python>=3.6 with:

virtualenv -p python3 venv
source venv/bin/activate 

And install the dependecies with:

pip3 install -r requirements.txt

Running

Running is just as easy. Make sure that you have insalled all the libraries and then the tutorial is in tutorial.ipynb. You can run it comfortably in a Jupyter Notebook environment with:

jupyter notebook

and then navigate to the tutorial.ipynb by using the built-in explorer.

Paper

The paper is in the repository under paper.pdf accompanied by a presentation under presentation.pdf.

Citation

@inproceedings{ferianc2020improving,
  title={Improving Performance Estimation for FPGA-Based Accelerators for Convolutional Neural Networks},
  author={Ferianc, Martin and Fan, Hongxiang and Chu, Ringo SW and Stano, Jakub and Luk, Wayne},
  booktitle={International Symposium on Applied Reconfigurable Computing},
  pages={3--13},
  year={2020},
  organization={Springer}
}

Authors

Martin Ferianc ([email protected]), Hongxiang Fan, Ringo S. W. Chu, Jakub Stano and Wayne Luk, 2020

Acknowledgments

We thank Yann Herklotz, Alexander Montgomerie-Corcoran and ARC'20 reviewers for insightful suggestions.

News

We were in the news here and here.

improving_per_esti_for_fpga-based_acc_for_cnns-arc2020's People

Contributors

martinferianc 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.