Politecnico di Torino (logo)

A SIMD Application Specific Instruction-Set Processor for Convolutional Neural Networks

Fabrizio Frisari

A SIMD Application Specific Instruction-Set Processor for Convolutional Neural Networks.

Rel. Maurizio Martina. Politecnico di Torino, Corso di laurea magistrale in Ingegneria Elettronica (Electronic Engineering), 2019

PDF (Tesi_di_laurea) - Tesi
Licenza: Creative Commons Attribution Non-commercial No Derivatives.

Download (3MB) | Preview

Machine Learning (ML) is one of the greatest creations in the last decades. It has been defined for the first time by Arthur Samuel in 1959 as "the field of study that gives computers the ability to learn without being explicitly programmed". ML has completely changed the way of programming: with just a single program, the machine is able to learn by itself how to perform many different tasks. Even though Machine Learning is not a recent creation, it only developed in the last years. The main reason is the progress of the technology and the growth of internet. Basically, there are much larger data sets to exploit than ever before. Indeed, Machine Learning algorithms need a really large number of data for the learning process and a great amount of computational power; both are accessible only in the last decades. There is an area of ML that is often referred as "brain-inspired computation", since the program emulates in some way the human brain and its capability in learning and solving problems. This field is called Neural Network (NN). Its basic element is the neuron: it receives an input and outputs a nonlinear function. The latter is called activation function and, by connecting many of them in a network, it is possible to obtain a large computational unit, able to perform a specific task. The simplest NN has three layers: input layer, hidden layer and output layer. All those layers can have a large amount of neurons. Really complex structures of neural networks are called DNN (Deep Neural Network) and define the DL (Deep Learning) area. Those networks have a great number of hidden layers and have really high performances, with respect to simple NNs. They are used in many tasks, such as speech recognition, healthcare applications and computer vision problems, like object detection and image recognition. There are a lot of DNN solutions, one of the most popular is the Convolutional Neural Network (CNN). It is the perfect model for computer vision applications. In this work, a Convolutional Neural Network has been created from scratch; the code is written in a mix of C/C++ code. Then, it has been loaded in the Synopsys software "ASIP Designer": it is a tool used for designing custom processors or programmable accelerators for different applications. Indeed, ASIP is the acronym of Application Specific Instruction-Set Processor and with this software it is possible to exploit this approach to realize custom processors. The tool uses its high level Hardware Description Language (HDL), called "nML", to describe the architecture of the processor. Starting from a default processor model, it is possible to modify it to realize a custom application. Moreover, ASIP Designer provides useful instruction reports that emphasizes which instructions have the heaviest computational cost. This information can be used to optimize the software code and the structure of the hardware processor, in a very easy way. Starting from a simple CNN software solution, many different implementations of the network have been created. A Single Instruction Multiple Data (SIMD) approach has been used to optimize and perform the convolution operation with few instructions. In the end, all the optimizations have been adopted in a more complex CNN structure, smaller but similar to the most famous DNN models, such as VGG-16 and AlexNet. A final comparison of power consumption and area occupation has been done for the different network implementations used in this work.

Relators: Maurizio Martina
Academic year: 2019/20
Publication type: Electronic
Number of Pages: 82
Corso di laurea: Corso di laurea magistrale in Ingegneria Elettronica (Electronic Engineering)
Classe di laurea: New organization > Master science > LM-29 - ELECTRONIC ENGINEERING
Aziende collaboratrici: Amiat SpA
URI: http://webthesis.biblio.polito.it/id/eprint/12536
Modify record (reserved for operators) Modify record (reserved for operators)