Efficient FPGA-Based Inference Architectures for Deep Learning Networks

L’apprentissage profond est devenu la technique de pointe pour de nombreuses applications de classification et de regression. Les modeles d’apprentissage profond, tels que les reseaux de neurones profonds (Deep Neural Network - DNN) et les reseaux de neurones convolutionnels (Convolutional Neural Network - CNN), deploient des dizaines de couches cachees avec des centaines de neurones pour obtenir une representation significative des donnees d’entree. La puissance des DNN et des CNN provient du fait qu’ils sont formes par apprentissage de caracteristiques extraites plutot que par des algorithmes specifiques a une tâche. Cependant, cela se fait aux depens d’un cout de calcul eleve pour les processus d’apprentissage et d’inference. Cela necessite des accelerateurs avec de hautes performances et economes en energie, en particulier pour les inferences lorsque le traitement en temps reel est important. Les FPGA offrent une plateforme attrayante pour accelerer l’inference des DNN et des CNN en raison de leurs performances, du a leur configurabilite et de leur efficacite energetique.Dans cette these, nous abordons trois problemes principaux. Premierement, nous examinons le probleme de la mise en oeuvre precise et efficace des DNN traditionnels entierement connectes sur les FPGA. Bien que les reseaux de neurones binaires (Binary Neural Network - BNN) utilisent une representation de donnees compacte sur un bit par rapport aux donnees a virgule fixe et a virgule flottante pour les DNN et les CNN traditionnels, ils peuvent encore necessiter trop de ressources de calcul et de memoire. Par consequent, nous etudions le probleme de l’implementation des BNN sur FPGA en tant que deuxieme probleme. Enfin, nous nous concentrons sur l’introduction des FPGA en tant qu’accelerateurs materiels pour un plus grand nombre de developpeurs de logiciels, en particulier ceux qui ne maitrisent pas les connaissances en programmation sur FPGA. Pour resoudre le premier probleme, et dans la mesure ou l’implementation efficace de fonctions d’activation non lineaires est essentielle a la mise en oeuvre de modeles d’apprentissage profond sur les FPGA, nous introduisons une implementation de fonction d’activation non lineaire basee sur le filtre a interpolation de la transformee cosinus discrete (Discrete Cosine Transform Interpolation Filter - DCTIF). L’architecture d’interpolation proposee combinedes operations arithmetiques sur des echantillons stockes de la fonction de tangente hyperbolique et sur les donnees d’entree. Cette solution offre une precision 3× superieure a celle des travaux precedents, tout en utilisant une quantite similaire des ressources de calculs et une petite quantite de memoire. Differentes combinaisons de parametres du filtre DCTIF peuvent etre choisies pour compenser la precision et la complexite globale du circuit de la fonction tangente hyperbolique.----------ABSTRACT: Deep learning has evolved to become the state-of-the-art technique for numerous classification and regression applications. Deep learning models, such as Deep Neural Networks (DNNs) and Convolutional Neural Networks (CNNs), deploy dozens of hidden layers with hundreds of neurons to learn a meaningful representation of the input data. The power of DNNs and CNNs comes from the fact that they are trained through feature learning rather than task-specific algorithms. However, this comes at the expense of high computational cost for both training and inference processes. This necessitates high-performance and energyefficient accelerators, especially for inference where real-time processing matters. FPGAs offer an appealing platform for accelerating the inference of DNNs and CNNs due to their performance, configurability and energy-efficiency. In this thesis, we address three main problems. Firstly, we consider the problem of realizing aprecise but efficient implementation of traditional fully connected DNNs in FPGAs. Although Binary Neural Networks (BNNs) use compact data representation (1-bit) compared to fixedpoint data and floating-point representation in traditional DNNs and CNNs, they may still need too many computational and memory resources. Therefore, we study the problem of implementing BNNs in FPGAs as the second problem. Finally, we focus on introducing FPGAs as accelerators to a wider range of software developers, especially those who do not posses FPGA programming knowledge. To address the first problem, and since efficient implementation of non-linear activation functions is essential to the implementation of deep learning models on FPGAs, we introduce a non-linear activation function implementation based on the Discrete Cosine Transform Interpolation Filter (DCTIF). The proposed interpolation architecture combines arithmetic operations on the stored samples of the hyperbolic tangent function and on input data. It achieves almost 3× better precision than previous works while using a similar amount of computational resources and a small amount of memory. Various combinations of DCTIF parameters can be chosen to trade off the accuracy and the overall circuit complexity of the tanh function. In an attempt to address the first and third problems, we introduce a Single hidden layer Neural Network (SNN) multiplication-free overlay architecture with fully connected DNN-level performance. This FPGA inference overlay can be used for applications that are normally solved with fully connected DNNs. The overlay avoids the time needed to synthesize, place, route and regenerate a new bitstream when the application changes. The SNN overlay in puts and activations are quantized to power-of-two values, which allows utilizing shift units instead of multipliers. Since the overlay is a SNN, we fill the FPGA chip with the maximumpossible number of neurons that can work in parallel in the hidden layer. We evaluate the proposed architecture on typical benchmark datasets and demonstrate higher throughputwith respect to the state-of-the-art while achieving the same accuracy. In addition, the SNN overlay makes the power and versatility of FPGAs available to a wider DNN user community and to improve DNN design efficiency.