FPGA et Deep Learning

=Objectif= Les FPGA sont des circuits logiques programmables. Grossièrement à l'aide d'une chaîne d'outils et à partir d'une description par exemple via un langage comme Lustre en ALM-INRFO3, on obtient un circuit qui réalise les fonctions logigues combinatoire et séquentiel (mémoire et bascules) souhaitées.

Dans ce projet nous allons nous intéressé à implémenter un réseau de neurone simple de type Perceptron (simple et peut-être multicouches). Nous allons nous baser sur le travail effectué l'an dernier sur ce sujet. Deux axes principaux de recherche seront le passage du Perceptron codé en Python sur la FPGA et le passage à un modèle de perceptrons plus complexe multicouches.

Nous utiliserons pour décrire et simuler les circuits souhaitées le logiciel nmigen écrit en Python3.

=Plan de travail=
 * On procédera par preuve de concept
 * Un état l'art rapide sera à réaliser FPGA et Deep Learning pour identifier les grandes classes d'architectures
 * Programmation d'un perceptron avec phase d'apprentissage et d'inférence
 * Un état l'art sera à réaliser

=Prérequis=
 * Connaissance de Python
 * Ne pas avoir eu une sainte horreur de cours d'ALM