Git Product home page Git Product logo

cnnpu's Introduction

Convolution Neural Network Processor

A C++ model of a convolutionnal neural network accelerator on FPGA

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Cloning the project

First downlaod the project on your machine:

git clone [Project URL]

Prerequisites

All dependencies are already in the project folder lib/, so no need to install anything.

This project is heavily dependent on the libfi library. libfi allow the simulation of fixed point number. It is in template form to allow easy variable type swap. Been Templatized, you will find most of the modules code in the include/.hpp files.

The automated tests are made with the help of the Google Test library.

Compiling the code

The compiling is done withe the help of cmake. This command executed at the project root (CNNP/) should build everything for you.

cmake

Compiling the documentation

TODO -> doxygen

Running the tests

The test can be found in src/test folder. There is one test file for every module containing unit tests for this module. Executing one should run all the test for that module. The test are not true unit test in the fact that no mocking is used for now. To properly test the whole processor, smaller module should be tested first. PE, then CE, then Controller, then the CNNP.

To add tests, the Google Test framework need to be understood. The google test suite is open source and can be found HERE

Using the processor model

TODO

Coding guidelines

Versioning

We use Git for versioning.

Authors

  • Thierry Pouplier - Initial work

Acknowledgments

  • Thanks to François Leduc-Primeau for helping me with this project
  • Sze, V., Chen, Y., Yang, T. and Emer, J. (2017). Efficient Processing of Deep Neural Networks: A Tutorial and Survey. Proceedings of the IEEE, 105(12), pp.2295-2329.
  • Sankaradas, M., Jakkula, V., Cadambi, S., Chakradhar, S., Durdanovic, I., Cosatto, E., & Graf, H. P. (2009). A Massively Parallel Coprocessor for Convolutional Neural Networks, 53–60. https://doi.org/10.1109/ASAP.2009.25

cnnpu's People

Contributors

gortium avatar

Watchers

 avatar

cnnpu's Issues

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.