Vous êtes ici

Réseaux sur puce tolérants aux fautes pour les algorithmes d’apprentissage profond

Equipe et encadrants
Département / Equipe: 
DépartementEquipe
Site Web Equipe: 
https://team.inria.fr/cairn/
Directeur de thèse
CHILLET Daniel
Co-directeur(s), co-encadrant(s)
SENTIEYS Olivier
Contact(s)
NomAdresse e-mailTéléphone
CHILLET Daniel
daniel.chillet@irisa.fr
0786356124
Sujet de thèse
Descriptif

Problématique générale

Les robots, drones (UAV), réseaux de caméra, smartphones, etc. nécessitent de plus en plus des systèmes évolués de vision embarquée capables de reconnaitre et classifier des objets dans une scène, sous de fortes contraintes de performance de temps réel, de faible coût et d’efficacité énergétique. Pour répondre à ce besoin, les algorithmes récents de vision combinent plusieurs couches d’extraction de caractéristiques (bancs de filtres divers), basées sur des couches de non linéarité associées à des techniques d’apprentissage. Plus spécifiquement, les systèmes basés sur l'apprentissage profond (deep learning), en particulier les réseaux de neurones convolutifs (ConvNets), obtiennent les meilleurs résultats de l’état de l’art pour la vision synthétique.
Ces algorithmes d’apprentissage profonds, caractérisés par des besoins en puissance de calcul et en volume de données très importants, ont motivé de nombreuses implémentations optimisées sur processeurs (CPU ou GPU), mais celles-ci  ne sont pas compatibles avec les contraintes de l’embarqué. L'accélération matérielle utilisée conjointement aux architectures multi-cœurs embarquées sont une réponse intéressante dans le contexte de systèmes de vision mobiles ou portables. La structure des ConvNets permet de plus d’envisager une parallélisation massive des traitements [1] et l’implémentation FPGA est alors une réelle opportunité [10]. Toutefois, cette forte parallélisation entraîne alors des besoins en échanges de données important entre les cœurs de calcul, qui sont à l’heure actuelle assurés par des réseaux embarqués sur puce (Network-on-Chip ou NoC) [2], et la performance globale du système est directement liée à ce média de communication.
Parallèlement à ce contexte applicatif, la densité d’intégration des transistors sur le silicium qui s’accompagne d’une complexification des architectures engendre une sensibilité fortement accrue de ces circuits aux fautes. En effet, il est reconnu depuis les années 1980 que les rayons cosmiques terrestres peuvent provoquer des défauts dans les composants électroniques, allant de la faute logique jusqu’à la destruction du circuit.  Ce phénomène dit SEE (Single Event Effect) s’est accentué dans les années 90 en raison de la réduction d’échelle des transistors élémentaires et de l’augmentation de la taille des mémoires utilisées. 
Pour répondre à cette problématique, les architectures développées doivent donc disposer de mécanismes internes aptes à détecter les fautes et à remédier aux impacts de ces fautes sur l’application. Les aléas logiques (SEU pour Single-Event Upset) ont été identifiés aux cours des dernières décennies comme la principale problématique et de nombreuses solutions pour atténuer leurs effets ont été présentées dans la littérature. En revanche, les évènements de type transitoire (SET pour Single-Event Transients) n'ont pas été considérés comme un défi important en raison des phénomènes de masquage logique, électrique et de verrouillage dans les logiques numériques. Cependant, avec la diminution des dimensions des transistors, des capacités et des tensions d'alimentation, les seuils requis pour induire une impulsion transitoire perturbant le circuit sont devenus de plus en plus faibles. Par ailleurs, les fréquences de fonctionnement plus élevées rendent plus probable qu'un SET généré dans la logique combinatoire soit capturé sur l'élément de stockage. Par conséquent, pour les technologies intégrées, les SET dépassent rapidement le taux d'erreurs SEU et doivent être pleinement considérés. De la même façon la réduction des dimensions engendre des probabilités pour des fautes multiples (MBU pour Multiple-Bit Upset) de moins en moins négligeables. 
Pour supporter des traitements parallèles massifs, les architectures hétérogènes couplant multi-cœurs et accélérateurs matériels sont plébiscitées non seulement pour l’embarqué mais également pour les calculateurs hautes performances. Dans ces deux contextes, les circuits reconfigurables FPGA sont de plus en plus utilisés car ils permettent d’embarquer l’ensemble de l’architecture. Concevoir des systèmes basés sur des FPGA et dotés de mécanismes de tolérances aux fautes, est donc un point critique. En particulier, lorsque le circuit reconfigurable supporte tout ou partie du NoC du système, des mécanismes propre à la gestion des fautes sur le réseau sont nécessaires [9,14,15,16] en vue de satisfaire les contraintes de qualité de service (QoS) attendues par les applications.
Les travaux proposés dans cette thèse adresseront cette problématique générale de la tolérance aux fautes du réseau d’interconnexion supportant les échanges de données au sein d’une architecture multi-cœurs embarquée dans un FPGA. 

Programme de la thèse

L’objectif de cette thèse consistera à modéliser l’impact d’erreurs simples (SEU, SET) et multiples (MBU) à différents niveaux d’abstraction au sein d’un NoC sur FPGA. Cette modélisation permettra de proposer de nouvelles techniques de robustification des routeurs et de diagnostic pour les interconnexions sur puce dans le contexte des applications d'apprentissage profond pour la vision synthétique.  Il faut par ailleurs noter que l’équipe CAIRN est impliquée dans le projet FLODAM (RAPID DGA) consistant à robustifier les cœurs de calculs. Ainsi, nous ne considérerons pas ces aspects dans la thèse.
Nous considérons dans ces travaux une architecture multi-cœurs implémentée sur un FPGA, tel qu’illustré sur la Figure 1-a. Les processeurs, chacun associé à une mémoire, sont interconnectés par des routeurs formant un NoC. Nous focaliserons les travaux sur l’impact des fautes sur le NoC et nous proposerons des mécanismes de gestion adaptés permettant soit de faire fonctionner le routeur en mode dégradé si les performances applicatives sont satisfaites, soit de réparer celui-ci. Pour adresser ces deux points, nous procéderons par étapes en partant d’une meilleure compréhension de l’impact des fautes sur le circuit FPGA, pour aller vers les techniques de haut niveau citées ci-dessus. Ces différentes étapes des travaux proposés sont illustrées en Figure 1-b. 

               

Figure 1 : (a) Architecture multi-cœurs sur FPGA, (b) Approche bottom-up du projet
P : Processeur, M : Mémoire, R : Routeur, I/O : Entrées/Sorties

1/ Impact des fautes sur les blocs de base d’un FPGA
Dans la première partie de nos travaux, nous étudierons l’impact des fautes sur les éléments de base d’un FPGA tels que les blocs logiques configurables (CLB) ou les interconnexions programmables (SW). Afin de considérer les problématiques les plus récentes, nous considérerons plusieurs modèles de fautes simples, multiples et transitoires (SEU, SET, MBU). Etant donné que la configuration d’un FPGA dépend d’une mémoire de configuration associée (chargée par le Bit-Stream), certaines fautes vont générer un comportement fautif “permanent” (jusqu’à la prochaine réécriture sur la mémoire de configuration). L’impact des fautes sera étudié au niveau cellules, notamment à l’aide des outils de tolérance aux fautes fournis par Xilinx [3-5,13]. Il faut par ailleurs noter que l’équipe CAIRN possède des compétences sur les modèles bas niveau des FPGA (conception de cellules CLB et SW) acquises dans un projet Européen précédent qui permettront de mener à bien ces objectifs. L’objectif de cette étude est de définir des modèles comportementaux des blocs du FPGA en fonction des fautes qu’ils peuvent subir.

2/ Modèle comportemental de fautes des routeurs
Dans la deuxième partie de nos travaux, nous proposons d’extraire les erreurs sur les routeurs à partir des modèles de blocs fautifs de l’étape 1. En effet, les routeurs du NoC sont implantés à l’aide de plusieurs CLB et SW, et une faute au niveau d’un de ces blocs doit être reportée au niveau du comportement du composant routeur. Cette étude permettra d’extraire un modèle de fautes à plus haut niveau fournissant alors la répartition du type d’erreur sur les fonctionnalités du routeur (erreur sur les données transportées, sur l’aiguillage, etc.). Cette étude permettra de confronter notre modèle de routeur sur FPGA à des études de l’état de l’art basées sur des routeurs implantés sur ASIC [6]. Cette étude permettra également d’identifier les modes dégradés exploitables du routeur et de les modéliser afin que le système d’exploitation (OS) soit en mesure de les prendre en compte et de les exploiter pour les tâches applicatives à déployer sur l’architecture.
Cette étape constitue une première contribution importante de nos travaux puisque nous allons nous focaliser sur un modèle de fautes peu étudié dans l’état de l’art qui se concentre généralement sur une seule occurrence de faute simultanée [4-5]. Dans cette étape, nous étudierons l’impact de plusieurs fautes simultanées sur un routeur.

3/ Routeur tolérant aux fautes
À partir de ces premières études, la seconde contribution de ce travail de thèse se focalisera sur la réalisation d’un routeur robustifié permettant de résister à un certain nombre et type de fautes. Il s’agira alors de définir les points les plus sensibles du routeur afin de les protéger par des techniques de tolérance aux fautes. Cette analyse des points sensibles du routeur permettra de ne pas simplement utiliser la duplication ou la triplication sur l’ensemble des éléments, mais en particulier de customiser les techniques implémentées afin de les rendre plus efficaces pour les blocs cibles du routeur (buffer d’entrée et de sortie, aiguilleur, contrôleur, etc.).  
Pour cette étape, l’objectif de conception du routeur consistera à minimiser le surcoût matériel des techniques implémentées, et aura donc un effet bénéfique sur la consommation énergétique global du routeur et du NoC. Nous considérerons également l’impact de plusieurs routeurs fautifs sur les performances globales.

4/ Qualité de service (QoS) versus tolérance aux fautes au niveau de l’architecture
Certains éléments du routeur peuvent être très couteux à protéger, ou peuvent tolérer un nombre limité d’erreurs (par exemple des buffers utilisant un code correcteur limité à deux erreurs corrigeables). Dans ce cas, plutôt que de considérer des techniques très coûteuses, la quatrième partie de nos travaux s’attachera à proposer des techniques d’auto-diagnostics et de basculement en un mode dégradé permettant d’assurer une qualité de service prédictible. Les techniques développées pourront également prendre en compte des cas de fonctionnement dans lesquels des erreurs massives apparaitraient dans le système, nécessitant alors une prise de décision à haut niveau. L’auto-diagnostic permettra de fournir des informations à un contrôleur qui pourra alors prendre les décisions en cohérence avec les besoins applicatifs. On citera par exemple les décisions conduisant aux actions suivantes.

  • a)    Basculement en mode dégradé : le routeur peut être utilisé avec des performances diminuées. Par exemple une diminution de la fréquence d’horloge, une utilisation partielle des buffers, ou encore la disponibilité d’une partie seulement des ports d’entrées/sorties. Une évaluation du coût du fonctionnement en mode dégradé et de la réparation (self-healing) devra être effectuée dynamiquement et pourrait dépendre de l’application à exécuter. 
  • b)    Lancement d’une réparation (ou soin) d’un routeur : la re-configuration des blocs du FPGA associés aux routeurs peut être déclenchée en vue de corriger une erreur de type SEU ou MBU par exemple. Cette technique conduit à un surcoût temporel et matériel et nécessite une nouvelle phase de diagnostic afin de définir si la faute a été mitigée, sans quoi un basculement en mode dégradé devra être appliqué.

L’utilisation de modes dégradés sur certains routeurs du NoC va conduire à une hétérogénéité des performances au sein du réseau. Cette hétérogénéité doit être compatible avec les besoins applicatifs et le rôle du contrôleur sera d’assurer cette cohérence. En effet, des diminutions de performance sur les échanges de données peuvent mener à une augmentation de l’énergie consommée ou à une diminution de la vitesse de calcul. Etant donnée l’application de vision synthétique ciblée, le traitement considéré génère des besoins de calculs en fonction de la taille des objets à détecter et classer. Ainsi, le choix de la répartition des traitements devra tenir compte des performances du réseau et de la taille des objets, puisque de cette taille va découler le volume de données à manipuler et donc les performances réseaux nécessaires. Par exemple, une zone particulière de l’architecture multi-cœurs, fonctionnant en mode dégradé pour cause de bande-passante réduite suite à des fautes dans les routeurs, pourra être sollicitée pour le traitement de petites zones d’images en vue de détecter et classer de petits objets. Un seuil minimum de performance permettra au système de définir s’il faut appliquer une étape de soin.

5/ Démonstrateur sur FPGA
Finalement, un démonstrateur sur FPGA (Xilinx) sera réalisé afin de mettre en œuvre les différentes techniques proposées. L’architecture déployée sera dédiée à une application consistant à extraire les objets présents dans un flux vidéo et intégrant une phase de traitement par apprentissage profond. Les fautes seront injectées sur les blocs du FPGA à l’aide des outils de Xilinx pour ce qui concerne le bit-stream ou directement dans l’architecture des routeurs. Les résultats visés sont une maximisation des performances (nombre d’images par seconde) et une minimisation de l’énergie utilisée et de la complexité en surface en fonction de la probabilité d'occurrences et du nombre de fautes.

6/ Applications visées
Les résultats obtenus dans ce travail seront directement exploitables pour des applications avioniques (missiles, drones) pour lesquelles l’environnement radiatif est à l’origine de fautes qu’il convient de corriger afin d’assurer le succès de la mission. Les résultats pourront également être utilisées à des fins de sécurité des systèmes informatiques (SSI), puisque la tolérance aux fautes est une étape fondamentale dans la résistance aux attaques matérielles ou logicielles par injection de fautes, ou d’intelligence (IA) puisque les applications de vision synthétique considérées seront basées sur les algorithmes de l’état de l’art en apprentissage profond, et intégreront les contraintes de performance et d’énergie liées aux applications avioniques précitées.

Bibliographie
  1. Kalray, Deep Learning on MPPA® manycore processor, white paper, 2015.                  
  2. W. Choi et al., "On-Chip Communication Network for Efficient Training of Deep Convolutional Networks on Heterogeneous Manycore Systems," in IEEE Transactions on Computers, vol. PP, no. 99, pp. 1-1. doi: 10.1109/TC.2017.2777863                                        
  3. Xilinx, Demonstration of Soft Error Mitigation IP and Partial Reconfiguration Capability on Monolithic Devices, online, 2015.
  4. Di Carlo, P. Prinetto, D. Rolfo, and P. Trotta, “A fault injection methodology and infrastructure for fast single event upsets emulation on xilinx sram-based fpgas,” in 2014 IEEE International Symposium on Defect and Fault Tolerance in VLSI and Nanotechnology Systems (DFT). IEEE, 2014, pp. 159–164.
  5. I. Villalta, U. Bidarte, G. Santos, A. Matallana, and J. Jimenez, “Fault injection system for seu emulation in zynq socs,” in Design of Circuits and Integrated Circuits (DCIS), 2014 Conference on. IEEE, 2014, pp. 1–6.
  6. A. Eghbal, P. M. Yaghini, H. Pedram and H. R. Zarandi, "Fault injection-based evaluation of a synchronous NoC router," 2009 15th IEEE International On-Line Testing Symposium, Sesimbra, Lisbon, 2009, pp. 212-214.
  7. S. Jafri, J. Piestrak, S, O. Sentieys, and S. Pillement, “Design of the coarse-grained reconfigurable architecture DART with on-line error detection,” Microprocessors and Microsystems, vol. 38, pp. 124–136, Mar. 2014.         
  8. S. Jafri, S. J. Piestrak, O. Sentieys, and S. Pillement, “Design of a fault-tolerant coarse-grained reconfigurable architecture: A case study,” in Proc. of the 11th IEEE International Symposium on Quality Electronic Design (ISQED 2010), (San Diego, CA, USA), p. 6 pages, IEEE, Mar. 2010.
  9. Mrs.Jamuna.S, Dr. V.K. Agrawal, Fault Tolerant Techniques for Reconfigurable Devices: a brief Survey, International Journal of Application or Innovation in Engineering & Management (IJAIEM), ISSN 2319 - 4847, Volume 2, Issue 1, January 2013.
  10. E. Nurvitadhi, G.Venkatesh, J.Sim, D.Marr, R.Huang, J.Gee Hock Ong, Y.Tat Liew, K.Srivatsan, D.Moss, S.Subhaschandra, G.Boudoukh, Can FPGAs Beat GPUs in Accelerating Next-Generation Deep Neural Networks?, Proceedings of the 2017 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays, February 22 - 24, 2017
  11. C.Angeliand, A.Chatzinikolaou,“On-line fault detection techniques for technical systems: A survey,” International Journal of Computer Science & Applications, vol. 1, no. 1, pp. 12–30, 2004.
  12. M.Pignol, “DMT and DT2: two fault-tolerant architectures developed by CNES for COTS-based spacecraft supercomputers,” in 12th IEEE International On-Line Testing Symposium (IOLTS), pp. 1–10, 2006.
  13. Xilinx All Programmable SoC, http://www.xilinx.com/products/silicon-devices/soc.html, 2016.
  14. Dongkook Park, C. Nicopoulos, Jongman Kim, N. Vijaykrishnan and C. R. Das, "Exploring Fault-Tolerant Network-on-Chip Architectures," International Conference on Dependable Systems and Networks (DSN'06), Philadelphia, PA, 2006, pp. 93-104.
  15. M. Radetzki, C. Feng, X. Zhao, and A. Jantsch. Methods for fault tolerance in networks-on-chip. ACM Computing. Survey, 46(1):8:1–8:38, July 2013.
  16. A. Runge. Fafnoc: A fault-tolerant and bufferless network-on-chip. Procedia Computer Science, 56:397 – 402, 2015. The 10th International Conference on Future Networks and Communications (FNC 2015) / The 12th International Conference on Mobile Systems and Pervasive Computing (MobiSPC 2015) Affiliated Workshops.
Début des travaux: 
Automne 2018
Mots clés: 
Architecture many-core hétérogène, tolérance aux fautes, réseau sur puce, apprentissage
Lieu: 
IRISA - Campus universitaire de Beaulieu, Rennes