Generic neural network software on FPGA

One of the main approaches to problem solving in computer vision is neural networks.
Implementation of such networks on a computer or GPU system requires high computational power
and hence high power, long computation time and expensive cost.
This project is the software part of 3 teams: software, hardware and algorithm.
The 3 projects goal is to create a system that implement the LeNet 5 model using FPGA instead of GPU to improve performance.

Team project:
The goal of this project was to design and implement a generic CNN (Convolutional Neural Network) system
which will be able to be flexibly implemented on the FPGA component.
The system is based on firmware and software integration (FPGA and ARM).
The firmware is used to speed up complicated calculations and perform parallel calculations.
The software is responsible for the system management logic and control of the calculation units.
The project is a collaboration of 3 teams:
– Hardware team: Responsible for implement the firmware components responsible for neuron calculations.
– Software team: Responsible for executing the calculations that preformed serially and the management and control of the computing units in the hardware.
– Algorithm team: Responsible for testing different data representation methods, training neuron networks and send network configuration to the software team.

 

 

This project:
The project’s goal was to implement the system’s software.
The system will implement LeNet5 CNN.
In order to test the system, the calculation units (“neurons”) will be implemented in the software, for simulating the hardware.