Intelligence artificielle sur FPGA
Stage Réseau Neuronal Convolutif sur FPGA
Est-il plus efficace de réaliser du traitement d’images directement sur un système embarqué, au niveau du FPGA, plutôt que de transmettre les fichiers à une station dédiée distante utilisant des solutions sur GPU (processeur graphique) ? La question peut sembler très technique, mais les implications sont en fait très pratiques, notamment pour les systèmes embarqués autonomes (ex : des drones d’inspection), qui doivent pouvoir fonctionner hors connexion réseau. Johann s’est penché sur ce sujet ambitieux au cours de son stage.
CNN sur FPGA
Dans le domaine du machine learning, un CNN, ou réseau de neurones à convolution, constitue selon Wikipedia « un type de réseau de neurones artificiels acycliques, dans lequel le motif de connexion entre les neurones est inspiré par le cortex visuel des animaux. Les neurones de cette région du cerveau sont arrangés de sorte qu’ils correspondent à des régions qui se chevauchent lors du pavage du champ visuel. Leur fonctionnement est inspiré par les processus biologiques, ils consistent en un empilage multicouche de perceptrons (des algorithmes d’apprentissage supervisés), dont le but est de prétraiter de petites quantités d’informations. Les réseaux neuronaux convolutifs ont de larges applications dans la reconnaissance d’image et vidéo, les systèmes de recommandation et le traitement du langage naturel. »
Le sujet de stage CNN sur FPGA visait à explorer les solutions proposées par XILINX pour implémenter des réseaux de neurones à convolution sur FPGA Zynq UltraScale+ MPSoC. ELSYS Design souhaitait ainsi valider et benchmarker les solutions de Machine Learning at the Edge (traitement local des images sur un système embarqué) en comparaison des solutions sur GPU de type NVIDIA. La comparaison portait sur l’efficacité de la solution FPGA en termes de performance et de consommation électrique.
Témoignage de Johann
« Mon stage s’est déroulé en trois grandes parties. La première a été consacrée à relancer et à analyser les designs exemples, constitués de l’IP Xilinx Deep learning Processor Unit pour CNN, sur une carte d’évaluations ZCU102. La deuxième a été d’implémenter les deux réseaux de neurones, Inception_V4 et Mobilenet_V2 entrainés, fournis par un partenaire spécialisé en IA et data science. La troisième a été de benchmarker les performances obtenues en termes d’inférences, d’occupation mémoire et de précision entre la cible d’origine du partenaire (Huawei P10) et la cible FPGA Zynq U+. L’Inception v4 a donné de meilleurs résultats sur FPGA, contrairement au Mobilenet_V2. […]
Lorsque je suis rentré chez ELSYS Design, je n’avais que mes connaissances théoriques sur le monde de l’embarqué et une pratique basée sur les projets réalisés en cours ou dans le but d’être notés. J’ai très vite compris que ces connaissances ne seraient pas suffisantes pour atteindre mes objectifs.
L’intelligence artificielle est d’autant plus difficile à implémenter quand elle a été réalisée pour d’autres systèmes d’exploitation. Il faut avoir une bonne gestion des paramétrages de l’IA, mais aussi une écriture de code la plus optimisée possible pour ne pas perdre ni en temps ni en précision et limiter la consommation de courant.
Durant ce stage, j’ai fortement enrichi mes compétences. En C, en FPGA, mais aussi et surtout en Linux embarqué. Je tiens à remercier tout particulièrement Lionel, référent métier FPGA et mon maître de stage durant ces 6 mois, pour sa disponibilité, son aide précieuse, son expertise et sa propension à demander le maximum à ses stagiaires. Il m’a énormément fait progresser, tant au niveau technique qu’au niveau professionnel. »
Envie de réaliser un stage chez ELSYS Design ? Retrouvez les offres sur notre site emploi, ou n’hésitez pas à déposer une candidature spontanée (cf le bouton situé dans le bandeau supérieur du site emploi).