AccueilđŸ‡«đŸ‡·Chercher

Cloud de FPGA

Ces derniÚres années, les cloud FPGA (Field Programmable Gate Arrays) commencent à émerger dans le domaine du cloud computing. Les FPGA ont été déployés dans des centres de données des principaux fournisseurs de services cloud, tels que Microsoft, Amazon, Alibaba et Huawei et sont accessibles par les entreprises ou le grand public.

Photo d'une Xilinx FPGA XCV400E-PQ240
Photo d'une puce Xilinx FPGA XCV400E-PQ240

Au fil des annĂ©es, les clouds FPGA se sont virtualisĂ©s pour ĂȘtre multi-utilisateurs et multi-applications exposant cette architecture Ă  diffĂ©rentes menaces dont il est important d'apporter une rĂ©ponse sur le plan de la sĂ©curitĂ©.

L'accélération des calculs, la sécurisation et la performance énergétique sont les principales motivations de ce déploiement dans les centres de données et l'on retrouve leur utilisation dans différents domaines tels que la médecine, le BigData, l'éducation et la télécommunication.

Motivations

Accélération des calculs

L'une des motivations de l'utilisation des FPGA dans le cloud est l'accĂ©lĂ©ration des calculs. Certains FPGA sont utilisĂ©s comme accĂ©lĂ©rateurs statiques, conçus une seule fois et utilisĂ©s pour une seule fonction[1]. Les systĂšmes combinant processeur et FPGA offrent une bande passante de donnĂ©e extrĂȘmement Ă©levĂ©e permettant Ă  des applications de haute performance avec une exĂ©cution matĂ©rielle et logicielle entrelacĂ©e, comme par exemple la puce Xilinx Zynq[2]. Les FPGA sont trĂšs utilisĂ©s pour les applications intensives en calcul grĂące Ă  leur puissance et leurs dĂ©lais d'exĂ©cution rapides[3]. La performance clĂ© et les avantages de puissance sont rĂ©alisĂ©s en concevant des calculs personnalisĂ©s des chemins de donnĂ©es adaptĂ©s Ă  une application particuliĂšre[1]. Les FPGA sont connus pour surpasser les GPU dans de nombreuses applications spĂ©cifiques (Chiffrement, MathĂ©matique et MĂ©dicale)[4].

SĂ©curisation du Cloud

La sĂ©curitĂ© figure parmi les motivations principales de l'utilisation des FPGA dans le cloud. L'une des techniques de sĂ©curisation est le chiffrement homomorphe. Il est une rĂ©ponse prometteuse aux problĂšmes de sĂ©curitĂ© soulevĂ©s par le cloud computing car il permet de stocker et de manipuler des donnĂ©es Ă  distance sous une forme chiffrĂ©e, empĂȘchant efficacement le serveur d'accĂ©der aux informations traitĂ©es[5].

Faible consommation d'Ă©nergie des FPGA

La faible consommation d'Ă©nergie est l'une des raisons de l'utilisation des FPGA dans le cloud. Un des moyens possibles qui permettent d'amĂ©liorer l'efficacitĂ© Ă©nergĂ©tique d'un nƓud dans le cloud computing consiste Ă  appliquer des accĂ©lĂ©rateurs matĂ©riel basĂ©s sur le FPGA[6]. L'une des approches est de s'intĂ©resser Ă  la rĂ©duction Ă©nergĂ©tique des composants de l’infrastructure cloud[6].

Architecture

CoProcesseur

Exemple schéma copresseur CPU-FPGA connecté au réseau cloud

L'hyperviseur FPGA est une plateforme spécifique[7] pour piloter les accélérateurs FPGA qui sont utilisés comme périphériques connecté en PCIExpress[8]. OpenCL fournit non seulement l'API pour communiquer et gérer les périphériques informatiques à l'intérieur du FPGA; il est aussi utilisé comme langage et API de programmation pour des appareils hétérogÚne[9] pour une application hÎte exécuté sur une machine CPU[10].

Un systÚme d'exploitation est proposé pour gérer les FPGA[11]. L'OS a une gestion complÚte du bus PCIExpress du serveur de connectivité, pour permettre au FPGA d'accéder aux périphériques connectés au serveur. Le systÚme d'exploitation assure également, la prise en charge de l'allocation de ressources FPGA aux utilisateurs et aux applications cloud[12].

Un autre cas d'usage présente une approche PaaS afin de simplifier la formation et le développement des systÚmes FPGA-attachés[13]. Ce systÚme se compose d'un environnement de développement Web personnalisable et d'un systÚme de gestion de cluster CPU-FPGA. Cela permet de compléter le développement FPGA grùce à un navigateur et le systÚme PaaS peut par la suite réaliser automatiquement la compilation et le déploiement FPGA[14].

Autonome

La dissociation du FPGA d'un serveur hÎte est préconisée au moyen d'une interface de contrÎleur de réseau (Network interface controller : NIC) 10GbE, connectant le FPGA au réseau du centre de données en tant que ressource autonome[15]. Il en découle un changement majeur sur la carte FPGA qui devient un appareil indépendant. Celui-ci exécute des tùches qui étaient auparavant sous le contrÎle d'un processeur hÎte, comme les actions de mise sous tension et hors tension, se connecter au réseau aprÚs la mise sous tension, réaliser des tùches locales de surveillance de l'état et de gestion du systÚme[16]. On peut ajouter à ce qui a été décrit, cette étude se repose également sur des services cloud courants[17] et le Transfert d'état de représentation (REST)[17].

Virtualisation

Classification des techniques de virtualisation FPGA

Une maniĂšre de classer les travaux existants sur la virtualisation des FPGAs, peut ĂȘtre de les organiser par niveau d'abstraction des systĂšmes de calcul qui utilisent la virtualisation. On peut donc les classer au niveau ressource, d'un noeud, ou de multiples noeuds[18].

Au Niveau ressource

La ressource peut ĂȘtre de deux types : reconfigurable, on parle de virtualisation d'architecture; et non reconfigurable, dans le cas de la virtualisation des E/S[18].

Les overlays (superpositions) sont des architectures implĂ©mentĂ©es sur les FPGAs reconfigurables[19]. Ainsi, un overlay peut ĂȘtre vu de deux maniĂšres : l'architecture fonctionnelle est la vue de dessus, c'est l'ensemble des Ă©lĂ©ments reconfigurables disponibles pour les applications ciblant l'overlay. La mise en Ɠuvre est la vue de dessous, c'est la maniĂšre dont l'architecture fonctionnelle est mise en Ɠuvre et synthĂ©tisĂ©e sur le FPGA hĂŽte[19]. Ces architectures offrent trois avantages : ils peuvent ĂȘtre utilisĂ©s pour homogĂ©nĂ©iser diffĂ©rents FPGA vendus sur l'Ă©tagĂšre COTS (Commercial Of The Shelf) hĂ©tĂ©rogĂšnes, en implĂ©mentant la mĂȘme architecture fonctionnelle sur diffĂ©rents hĂŽtes. L'architecture fonctionnelle de superposition peut ĂȘtre plus grossiĂšre, plus simple et plus abstraite que celle de son hĂŽte. Les concepteurs d'overlay peuvent ajouter des fonctionnalitĂ©s, Ă  l'implĂ©mentation de l'overlay, qui peuvent ne pas ĂȘtre prĂ©sentes sur le FPGA hĂŽte (sauvegarde de contexte dynamique, restauration du prĂ©chargement de la reconfiguration)[19]. Il est ajoutĂ© de nouvelles fonctionnalitĂ©s pour permettre la planification prĂ©ventive des tĂąches matĂ©rielles et la migration en direct[19].

Fonctionnement d'allocation de ressource FPGA pour machine virtuelle

Un autre cadre de virtualisation permet d'implĂ©menter un systĂšme de communication efficace entre les machines virtuelles et les FPGAs physiques non reconfigurable[20]. Il utilise une technique spĂ©cifique[21] pour les communications entre VM et FPGA[20]. Il utilise la table de mappage CID (Context Identifier)[22]/VF (Virtual Functions)[22] qui enregistre des rĂ©gions FPGA attribuĂ©es aux machines virtuelles. Le FPGA possĂšde principalement une architecture de superposition en pourvoyant des fonctions virtuelles VF (Virtual Functions) aux machines virtuelles VM (Virtual Machine), et un ensemble de BRAM (Blocs de RAM) pour stocker les donnĂ©es des VFs conçus avec une taille spĂ©cifique[23]. L'architecture overlay fournit plusieurs VFs sur le mĂȘme FPGA ou sur plusieurs FPGA distants Ă  un utilisateur; cela permet de rĂ©pondre aux exigences de disponibilitĂ© des services cloud sur les tĂąches matĂ©rielles d'un utilisateur sur plusieurs FPGA[23]. Lorsqu'un VF est attribuĂ© Ă  un utilisateur, le service de gestion du FPGA fait une mise Ă  jour de sa table mappage CID/VF pour pouvoir enregistrer l'utilisateur en question. Par la suite, il configure le HWSB (HardWare SandBoxes)[24] en bloquant toutes tentatives d'accĂšs Ă  un VF ou BRAM qui n'appartient pas Ă  l'utilisateur enregistrĂ©; cela permet de rĂ©pondre aux exigences d'isolements du Cloud[23].

Au Niveau d'un nƓud

Au niveau d'un nƓud : le terme "nƓud" signifie un FPGA unique. L'infrastructure et les techniques de management du FPGA sont le sujet de cette rubrique[18].

Ce systĂšme adopte le moniteur de machine virtuelle VMM (Virtual Machine Monitor) Xen pour crĂ©er un environnement paravirtualisĂ© comme accĂ©lĂ©rateur FPGA. Il se diffĂ©rencie des autres techniques, car la virtualisation se rĂ©alise directement au niveau du pilote du pĂ©riphĂ©rique[4]. Pour permettre l'utilisation de l'accĂ©lĂ©rateur FPGA dans le cas du pvFPGA (paravirtualized FPGA)[25], il faut un mĂ©canisme de transfert partant de quelques dizaines de kilo-octets jusqu'Ă  des gigaoctets de donnĂ©es entre le serveur et l'accĂ©lĂ©rateur FPGA. La mise en place d'un composant appelĂ© coproviseur[26] pour pvFPGA permet le multiplexage des requĂȘtes provenant de diffĂ©rents domaines et accĂ©dant au coprocesseur FPGA. Cette proposition repose sur la virtualisation GPU, qui rĂ©alise le travail de multiplexage dans l'espace utilisateur; plus prĂ©cisĂ©ment, le multiplexeur et l'ordonnanceur sont situĂ©s au-dessus du CUDA (Compute Unified Device Architecture), qui fournit deux interfaces de programmation : l'API du pilote et l'API d'exĂ©cution[27] - [28] - [29].

Le prototype RC2F (Reconfigurable Common Computing Frame) qui s'appuie sur des Ă©tudes antĂ©rieures[30], se base sur plusieurs vFPGAs (virtual FPGAs) utilisateurs fonctionnant sur un seul FPGA[31]. La partie principale est composĂ©e d'un hyperviseur[32] qui gĂšre la configuration, les cƓurs FPGA et la surveillance des informations d'Ă©tat[31]. L'espace mĂ©moire du contrĂŽleur est disponible depuis l'hĂŽte via une API. Les FIFO d'entrĂ©e sortie, procurent un dĂ©bit Ă©levĂ© pour des applications comme le streaming. Les vFPGAs apparaissent comme un pĂ©riphĂ©rique individuel au sein de la machine virtuelle du point de vue de l'utilisateur[31] - [33]. Les FPGA sont situĂ©s sur le systĂšme d'hĂŽte accessible depuis l'interface PCIExpress. Sur les deux composants hĂŽtes et FPGA, il existe un hyperviseur qui gĂšre les accĂšs des vFPGA, la configuration des vFPGA, l'affectation des vFPGA, et les communications de la puce entre les interfaces frontend et backend via le PCIExpress (le prototype utilise un PCIe-Core de Xillybus pour l'accĂšs direct Ă  la mĂ©moire DMA(Direct Memory Access)[34]. L'hyperviseur FPGA s'occupe de la gestion des vFPGA, leur encapsulation, la gestion de l'Ă©tat et la reconfiguration[35] grĂące Ă  l'ICAP (Internal ConïŹguration Access Port)[33]. L'interaction entre l'hĂŽte et l'hyperviseur FPGA repose sur la mĂ©moire de configuration composĂ©e de : la configuration de l'hyperviseur FPGA (Ă©tat du systĂšme, donnĂ©e de configuration et Ă©tat gĂ©nĂ©ral) et l'administration des vFPGA[33].

Au Niveau multiple noeud

Photo d'une carte FPGA du cas d'usage "Catapult"

Le "multiple nƓuds" est dĂ©fini comme un cluster de deux ou plus puces FPGA. Dans cette section, on traite des techniques et architectures utilisĂ©es pour connecter plusieurs FPGA combinĂ©s afin d'accĂ©lĂ©rer une tĂąche[18].

Les FPGA sont dĂ©ployĂ©s sur l'ensemble d'un lot de serveurs, chaque serveur possĂšde une petite carte avec un FPGA et une DRAM[36](une photo de cette carte ci-contre). Les FPGA sont directement cĂąblĂ©s ensemble, permettant aux services d'allouer des groupes de FPGA pour fournir la zone reconfigurable nĂ©cessaire afin d'implĂ©menter la fonctionnalitĂ© souhaitĂ©e[36]. Les FPGAs communiquent Ă  travers un rĂ©seau spĂ©cialisĂ© pour faciliter la communication FPGA-FPGA sans dĂ©grader le rĂ©seau Ethernet du centre de donnĂ©es[36]. Cela permet de mapper logiquement les services sur plusieurs FPGA[37]. Catapult, qui s'appuie sur cette structure, est une partie importante du moteur de classement Bing[38]. L'interface logicielle participe Ă  la gestion de la compression des requĂȘtes vers Bing en document[38]. Pour y arriver, diffĂ©rents mĂ©canismes sont mis en place comme : Le pipeline de traitement divisĂ© en plusieurs Ă©tapes de macropipelines, ce qui limite la durĂ©e de traitement[39]. Une file d'attente de requĂȘtes et documents se situe dans la DRAM du FPGA, pour ĂȘtre traitĂ© par le pipeline[39]. Il existe d'autres fonctionnalitĂ©s de Catapult comme l'expression de forme libre[40] et la notation des documents[41].

La solution proposée est une réponse aux deux limitations majeures du FPGA, le difficile couplage entre la compilation et l'allocation des ressources, et la complexité de la programmation de l'accélération des FPGA[42]. ViTAL fournit une abstraction pour séparer la compilation et l'allocation des ressources. La compilation des applications est réalisée hors ligne sur l'abstraction, tandis que l'allocation des ressources est faite dynamiquement au moment de l'exécution[42]. ViTAL crée l'illusion d'un seul et grand FPGA pour les utilisateurs, ce qui allÚge la complexité de la programmation, et prend en charge l'accélération de la montée en charge[42]. De plus, il fournit une prise en charge de la virtualisation pour les composants périphériques (par exemple, DRAM et Ethernet intégrés), ainsi qu'une prise en charge de la protection et de l'isolation pour garantir une exécution sécurisée dans l'environnement cloud[42]. Cette nouvelle abstraction systÚme, qui permet de faire l'intermédiaire entre les FPGA et la couche compilation[43]. Pour la prise en compte de cette abstraction, un FPGA physique est partitionné en trois régions, la région de service (modules dédiés pour réaliser le support de virtualisation des périphériques), la région de communication (comprend des tampons et une logique de contrÎle pour implémenter l'interface), et la région utilisateur divisée en un groupe de blocs physiques identiques[44]. La couche compilation met à disposition un flux de compilation générique pour appliquer des applications écrites dans divers langages de programmation de haut niveau sur différents FPGA[45]. La partition fractionne une "netlist" donnée générée à partir de l'étape précédente en un groupe de blocs virtuels[45] - [46].

Fiabilité

Les FPGA basĂ©s sur SRAM (Static Random Access Memory)[47] - [48] utilisent celle-ci pour dĂ©velopper les fonctions de routage et de calcul de base, grĂące Ă  l'utilisation de LUT et de MUX[49]. Il utilise un commutateur SRAM comme Ă©lĂ©ment programmable qui est un transistor passe-oxyde mince[49]. En fonction de la valeur de la tension, le commutateur peut soit permettre aux donnĂ©es de traverser l'entrĂ©e du commutateur, soit interrompre la connexion entre elles[50]. Le bouleversement d'Ă©vĂ©nement unique SEU (Single-Event Upsets)[50] est dĂ©fini comme des erreurs induites par le rayonnement dans les circuits microĂ©lectroniques provoquĂ©s lorsque des particules chargĂ©es (provenant de ceintures de rayonnement ou de rayons cosmiques)[50] - [51]. Dans les FPGA, les SEU peuvent directement corrompre les rĂ©sultats des calculs ou induire des modifications de la mĂ©moire de configuration[50]. Les bouleversements doivent ĂȘtre dĂ©tectĂ©s[52] et corrigĂ©s pour garantir que les erreurs ne s'accumulent pas[53]. Les particules chargĂ©es peuvent Ă©galement modifier la fonction logique du circuit mappĂ© lorsqu'elles atteignent la configuration sur la puce[52] - [51] - [50].

Sur le mĂȘme thĂšme, il est bon de citer l'effet d'Ă©vĂ©nement unique SEE (Single Event Effect)[54], dans les environnements terrestres, causĂ©s par divers neutrons et des particules alpha[55]. ainsi que les mĂ©thodes pour mesurer le taux d'erreurs modĂ©rĂ©, grĂące entre autres, en matiĂšre de dĂ©faillances dans le temps FIT (Failures In Time), et de temps moyen avant dĂ©faillance MTTF (Mean Time To Failure)[55]. Les auteurs Ă©prouvent le FPGA par des injections volontaires d'erreurs et commentent les rĂ©sultats[56] - [57].

L'impact de la sécurité sur l'architecture

Fonctionnement Proxy de rechiffrement avec un cloud FPGA

La sécurité n'est pas sans impact sur l'architecture des cloud FPGA.

Habituellement, l'utilisateur doit faire confiance au service de cloud pour que ces donnĂ©es garde leur confidentialitĂ©. Une telle confiance n'est cependant pas nĂ©cessaire, si la nature des donnĂ©es de l'utilisateur reste inaccessible grĂące Ă  un chiffrement. On peut donc garder les donnĂ©es utilisateurs chiffrĂ©es tout du long du traitement. Lorsque les donnĂ©es sont traitĂ©es doivent ĂȘtre rendus Ă  un autre utilisateur, il est habituellement nĂ©cessaire de dĂ©chiffrer ces donnĂ©es pour les chiffrer Ă  nouveau avec la clĂ© de cette autre utilisateur. Un dĂ©chiffrement n'est cependant pas nĂ©cessaire si l'on utilise un proxy de re-chiffrement.

Parmi les solutions existantes, il y a la mise en place d'un proxy de re-chiffrement qui permet de rechiffrer les données déjà chiffrées[58].

Le concept du proxy de re-chiffrement permet aux utilisateurs d'utiliser leurs propres clĂ©s pour le chiffrement. De plus, la donnĂ©e chiffrĂ©e par la clĂ© d’un utilisateur peut ĂȘtre re-chiffrĂ© par une clĂ© FPGA sans dĂ©chiffrer la donnĂ©e chiffrĂ©e. Cela permet Ă  l'utilisateur et au FPGA d'Ă©changer des donnĂ©es chiffrĂ©es sans Ă©changer de clĂ©[59].

Il y a gĂ©nĂ©ralement trois parties pour une architecture d'un proxy de re-chiffrement : l'utilisateur 𝐮, l'utilisateur đ” et le proxy. Les utilisateurs A et B possĂšdent une paire de clĂ©s (𝑝𝑘𝐮, 𝑠𝑘𝐮) et (đ‘đ‘˜đ”, đ‘ đ‘˜đ”) respectivement. Avec les informations des clĂ©s, une clĂ© de re-chiffrement đ‘Ÿđ‘˜đŽđ” peut ĂȘtre calculĂ©. La clĂ© de re-chiffrement est gĂ©nĂ©ralement envoyĂ©e au Proxy[58]. Le fournisseur de FPGA est Ă©galement responsable de l'intĂ©gration des clĂ©s dans les FPGA. Les clĂ©s peuvent ĂȘtre intĂ©grĂ©es dans le bitstream FPGA qui est chiffrĂ©[60].

Parmi d’autres solutions afin de mettre en Ɠuvre la sĂ©curitĂ©, il y a les fonctions physiques non clonables PUF(Physical Unclonable Functions) qui sont des puces Ă©lectronique. Les fonctions non clonables physiques (PUF) sont utilisĂ©es principalement pour l'authentification et le stockage de clĂ©[61] - [62] - [63]. Les deux principales applications des PUF sont : l'authentification Ă  faible coĂ»t et la gĂ©nĂ©ration de clĂ© sĂ©curisĂ©e[64].

La confidentialité des données

Les donnĂ©es utilisateurs sont protĂ©gĂ©es par des protocoles cryptographiques comme l'Oblivious Transfer et le Yao’s Garbled Circuit (en)[65]. L'un des protocoles trĂšs efficace utilisĂ© est le chiffrement homomorphe pour prĂ©server la confidentialitĂ©[66].

L'adoption d'un flux de bits de bootstrapper sĂ©curisĂ© par les fabricants de FPGA est une technique de sĂ©curisation. Le programme d'amorçage sĂ©curisĂ© partage une clĂ© secrĂšte avec ses clients et dĂ©chiffre les donnĂ©es et le flux de bits[59]. Les accĂ©lĂ©rateurs FPGA sont mis en Ɠuvre pour des techniques de prĂ©servation de la confidentialitĂ© des donnĂ©es, comme par exemple les circuits brouillĂ©s ou l'Ă©valuation de fonction sĂ©curisĂ©e[67]. Un accĂ©lĂ©rateur matĂ©riel a Ă©tĂ© conçu pour l'apprentissage automatique (Machine Learning) prĂ©servant la confidentialitĂ© sur les serveurs cloud qui repose sur une architecture FPGA et le protocole cryptographique Circuit brouillĂ© de Yao[68].

Les différentes menaces de sécurité

L'enjeu de la sĂ©curitĂ© des cloud FPGA est soumis Ă  diffĂ©rentes menaces. Dans le cas des cloud multi-utilisateurs, certains utilisateurs ou administrateurs malveillants peuvent accĂ©der aux donnĂ©es d’autrui[69].

Parmi les types de menaces, il y a les outils FPGA malveillants qui remplacent certaines fonctions des outils FPGA. La modification malveillante dans la conception compilĂ©e n'apparaĂźt qu’à la gĂ©nĂ©ration du bitstream. Dans le processus de gĂ©nĂ©ration de flux bitstream, l'outil de conception recherche ces modifications malveillantes. Si l'outil trouve ces modifications malveillantes, il les reconfigure pour activer le cheval de Troie (informatique)[70]. Comme menace malveillante, on trouve les trojan (cheval de troie) conçu spĂ©cifiquement pour les FPGA. Par exemple le cheval de troie LUT (LookUp Table) qui s'injecte et se dĂ©clenche par le bitstream (flux de conception)[71].

L’une des attaques possible sur les FPGA est de les reprogrammer pour gĂ©nĂ©rer des fluctuations de tension excessives en utilisant des bitstream valides. Cela peut provoquer un crash de l'appareil dans un court laps de temps. Dans le pire des cas, l'appareil ne se rĂ©initialisera pas, ça sera une attaque Deny Of Services (DoS). Il faudra alors dĂ©brancher physiquement l’appareil[72].

Il y a aussi les attaques par injection de faute (Fault-injection attacks), un attaquant injecte des fautes dans l'exĂ©cution processus d'une tĂąche de calcul. Ainsi, l'appareil produit des sorties erronĂ©es au niveau des ports de sortie. Ce problĂšme peut avoir de graves consĂ©quences dans un systĂšme cryptographique. Dans un tel systĂšme, des sorties dĂ©fectueuses due Ă  l’attaque peut conduire Ă  une rĂ©cupĂ©ration rĂ©ussie de la clĂ© secrĂšte dans le systĂšme[73].

Les solutions du marché

Avec la croissance des demandes de ressources FPGA, les offres commencent à émerger sur le marché du cloud computing.

Amazon propose des FPGA aux dĂ©veloppeurs d'applications Ă  travers son offre EC2 F1[74] pour permettre la crĂ©ation d’une accĂ©lĂ©ration matĂ©rielle personnalisĂ©e[74]. Ils proposent Ă©galement des infrastructures FPGA et des applications pour des domaines ciblĂ©s comme la cryptologie avec AWS Cloud Crypto[75] ou encore le machine learning avec FPGA-Accelerated Deep-Learning[76].

OVH lance en 2017[77] une offre "Acceleration as a Service" en partenariat avec Accelize qui propose un magasin d'applications pour la finance et les études de marché basée sur la technologie FPGA de Xilinx[78].

Huawei propose également des offres "Cloud accéléré" qui reposent sur des FPGA VU9P de Xilinx[79].

Microsoft utilise les FPGA sur son cloud Azure en tant qu'accélérateur dans le domaine du machine learning. Il est alors possible de déployer un modÚle en tant que service Web sur des FPGA pour réduire la latence et améliorer les performances[80].

EntrepriseOffreNombre de FPGAConstructeur FPGAImplémentationDomaine
AmazonEC2 F11/2/8 FPGAXilinx UltraScale Plus FPGACoprocesseur (PCIE)DĂ©veloppement
Amazon AWSFPGA Cloud Crypto1 FPGAXilinx UltraScale Plus FPGACoprocesseur (PCIE)Cryptologie
Amazon AWSFPGA-Accelerated Deep-Learning1 FPGAXilinx UltraScale Plus FPGACoprocesseur (PCIE)Machine learning
AccelizePro-Xilinx-Finance/Marché
AccelizeEntreprise-Xilinx-Finance/Marché
HuaweiFP1 basic/enhanced1/4/8Xilinx VU9PCoprocesseur (PCIE)DĂ©veloppement
Alibabaecs.f31/2/4Xilinx VU9PCoprocesseur (PCIE)DĂ©veloppement
Alibabaecs.f11/2/4Intel Arria 10 GX 1150Coprocesseur (PCIE)DĂ©veloppement
MicrosoftAzure ML-Intel Arria 10Coprocesseur (PCIE)Machine learning

Exemples d'utilisation

Apprentissage Automatique

Implémentation LSTM sur un Cloud FPGA

La complexitĂ© de calcul Ă©levĂ©e des rĂ©seaux de neurones reprĂ©sente un dĂ©fi critique pour leur adoption plus large dans des scĂ©narios en temps rĂ©el et Ă©co-Ă©nergĂ©tiques[81]. Dans l'implĂ©mentation de certains algorithmes utilisĂ©s pour l' Apprentissage automatique tel que Long Short-Term Memory (LSTM), les CPU et GPU ne peuvent pas atteindre de parallĂ©lisme Ă©levĂ© et consomment beaucoup. L'utilisation des FPGA dans ce contexte, de par leur flexibilitĂ© permet d’amĂ©liorer l'efficacitĂ© Ă©nergĂ©tique et d'optimiser chaque Ă©tape de l’algorithme de calcul[82].

Le fonctionnement est le suivant. Le serveur hĂŽte reçoit les demandes de calculs des clients et leur rĂ©pond. Il transfĂšre Ă©galement les donnĂ©es et taches gourmandes en calculs au FPGA via l'interface PCIExpress. Ces tĂąches sont "bufferisĂ©es" sur la mĂ©moire persistante de la carte FPGA avant d'ĂȘtre relayĂ©es sur la puce FPGA par le bus AXI4 (ou AXI4Lite)[83]. Sur la puce FPGA est intĂ©grĂ© les fonctions algorithmiques de Long Short-Term Memory (LSTM) qui est un rĂ©seau de neurone rĂ©current(RNN)[83] ou plus gĂ©nĂ©ralement les fonctions de rĂ©seau de neurone profond (DNN)[84].

Data Caching

Les magasins de valeurs-clĂ©s KVS (Key–value Store) deviennent de plus en plus courant dans les infrastructures Web mais ces technologies sont souvent implĂ©mentĂ©es sur des serveurs dont les performances sont limitĂ©es[85].

Memcached, déjà utilisé par des grands acteurs informatique tels que Facebook, Wikipédia, Flickr et Wordpress[86] est alors limité par le processeur dans des infrastructures classiques[87].

Les projets visant à utiliser des FPGA comme accélérateur memcached permettent d'obtenir de meilleurs résultats sur trois domaines : la latence, le débit en opérations par seconde et le coût.

Bénéfices des FPGA sur la solution Memcached
ProjetAvec FPGASans FPGASolution Comparée
LegUp Computing Inc sur Amazon F1[88]7M Opérations/Seconde/$691K Opérations/Seconde/$Amazon ElastiCache (1400 connexions simultanées)
Accelerateur pour Memcached (CPU+FPGA Xilinx Virtex-5 TX240T FPGA)[89]51.61K RequĂȘtes/Seconde/Watt< 22.5K RequĂȘtes/Seconde/WattCPU Intel Xeon
HP (appareil FPGA Memcached)[90]88.62K Opérations/Seconde/$24.69K Opérations/Seconde/$CPU Intel Xeon

Equilibreur de Charge

Les équilibreurs de charge sont des éléments essentiels dans les centres de données permettant de répartir les demandes entre serveurs actifs. L'implémentation d'un équilibreur de charge sur des ressources FPGA virtualisées permet de surpasser une version logicielle installé sur un serveur standard en termes de débit et de latence[91].

L'utilisation d'une telle solution montre que l'équilibreur de charge FPGA garde une latence constante malgré l'augmentation du débit et ne perd aucun paquet contrairement à un équilibreur de charge sur machine virtuelle ou quand la charge augmente, le nombre de paquets abandonnés et la latence sont en hausses[91].

L'autre avantage réside dans la gestion du Cloud. En effet, un équilibreurs de charge FPGA peut remplacer plusieurs machines virtuelles simplifiant et rationalisant le systÚmes de l'utilisateur, potentiellement réduire les coûts d'exploitation et réduire la consommation d'énergie globale et les coûts du centre de données[92].

Télécommunication

Les fournisseurs de services de télécommunications sont confrontés à des demandes d'utilisation croissantes, une augmentation exponentielle des abonnés mobiles et des appareils de l'Internet des objets[93]. Avec l'arrivée de la 5G, la virtualisation des fonctions réseau NFV (Network function virtualization) est cruciale[94].

La virtualisation des fonctions réseau est aujourd'hui une tendance importante dans l'industrie des réseaux, qui vise à remplacer les fonctions réseau de télécommunications actuelles basées sur des composants matériels spécialisés, par des fonctions de réseau virtuel fonctionnant sur des serveurs à usage général[95]. Le déplacement des NFV d'un matériel spécialement conçu vers des serveurs virtualisés à usage général présente en fait de gros avantages du point de vue de la maintenabilité et de la flexibilité, mais présente des défis sans précédent pour les processeurs qui ne sont pas en mesure de faire face aux besoins des opérateurs de réseau mobile[95].

Dans cet exercice, les FPGA sont une solution prometteuse pour les environnements cloud NFV et 5G en raison de leur temps d'exécution rapide et de leur grand potentiel d'accélération grùce à la cartographie du parallélisme des applications sur la structure reconfigurable[94] - [95].

Dans ce contexte, Intel travaille avec des leaders de l'industrie qui dĂ©veloppent des solutions afin de transformer le rĂ©seau de demain pour les NFV (Open vSwitch,Segment routing V6), le rĂ©seau d'accĂšs (Virtual RAN,LDPC 5G), le rĂ©seau cƓur et pĂ©riphĂ©rique(RĂ©seau CƓur 5G, virtual Evolved Packet Core, et la sĂ©curitĂ© (Virtual Firewall,IPsec & TLS)[93].

Chiffrement

Implémentation d'une Fonction Sécurisée sur un FPGA

Le Chiffrement homomorphe est une technique permettant au calcul de se dérouler sur des données chiffrées[5].

Les implĂ©mentations prĂ©cĂ©dentes de ce chiffrement homomorphe sur des processeurs Ă  usage gĂ©nĂ©ral avaient une latence trĂšs longue[96] et des coĂ»ts de calcul extrĂȘmement Ă©levĂ©s[5] ce qui le rend impraticable pour le cloud computing.

Les algorithmes de chiffrement ont des caractéristiques particuliÚres, comme le calcul intégral ou la manipulation au niveau des bits ce qui rend les plates-formes standard comme les CPU et les GPU moins compétitives que les FPGA[5]. Par rapport à l'accélération GPU, la conception basée sur FPGA a une consommation d'énergie beaucoup plus faible et de meilleures performances[97].

Les résultats obtenus sur différentes études soulignent le grand potentiel des technologies FPGA dans l'accélération d'algorithmes cryptographiques à forte intensité de calcul[98].

Une autre approche que le chiffrement homomorphe travaillant sur des données chiffrées permet de développer et d'implémenter des fonctions sécurisées dans un langage de haut niveau. Ainsi, les données sont transmises chiffrées et le FPGA les déchiffre, exécute une fonction préalablement développée et chiffre de nouveau le résultat avant de le retourner[99].

Big Data

Les FPGA reçoivent beaucoup d'attention ces derniÚres années pour les applications d'analyse des données en raison de leur capacité à prendre en charge le traitement parallÚle personnalisé[100]. Les nouvelles applications d'analyse de Big Data nécessitent une quantité importante de puissance de calcul du serveur[101], chose pour laquelle sont reconnus les FPGA[66]. Ils sont de ce fait déployés dans l'environnement cloud en tant qu'accélérateurs pour le traitement de données à grande échelle comme MapReduce[66].

L’intĂ©rĂȘt des FPGA dans ce domaine est d'accĂ©lĂ©rer le traitement des donnĂ©es[102], d'augmenter l’efficacitĂ© Ă©nergĂ©tique[101] en dĂ©chargeant les fonctions intensives en calcul vers l'accĂ©lĂ©rateur matĂ©riel mais Ă©galement de permettre, de par la flexibilitĂ© de programmation des puces, la mise en place d'une solution qui prĂ©serve la confidentialitĂ© de l’analyse de donnĂ©es en exploitant les propriĂ©tĂ©s de sĂ©curitĂ© uniques des FPGA[66]. En combinant la mĂ©thode de protection par hashcode avec le cloud FPGA, les donnĂ©es de l'utilisateur sont correctement protĂ©gĂ©es : les textes en clair des donnĂ©es de l'utilisateur n'apparaissent qu'Ă  l'intĂ©rieur des FPGA pour le traitement des donnĂ©es, et le fournisseur de services cloud n'a pas accĂšs Ă  ces derniĂšres[103].

La programmation des FPGA est nécessaire avant son utilisation. Il faut préalablement convertir les fonctions C (Cartographie et réduction) de MapReduce en modules matériels HLS (High-level synthesis) avant de les transférer sur les puces FPGA[103]. Généralement, les fonctions sont implémentées en pipeline pour de meilleurs résultats[103] - [104].

MĂ©decine

La mĂ©decine est Ă©galement concernĂ© par le cloud FPGA. En effet, la quantitĂ© de donnĂ©es gĂ©nĂ©rĂ©es en gĂ©nomique devrait se situer entre 2 et 40 exaoctets par an pour la prochaine dĂ©cennie, complexifiant ainsi leur analyse[105]. Les accĂ©lĂ©rateur FPGA dans le cloud permettent aux bio-informaticiens d’amĂ©liorer le temps d’exĂ©cution et le dĂ©bit des analyses de donnĂ©es gĂ©nomique[106] - [105]. Les performances et la rentabilitĂ© se rĂ©vĂšlent nettement supĂ©rieur que GATK (boĂźte Ă  outils d'analyse du gĂ©nome) sur un serveur Ă  CPU Xeon standard[106].

Education

Nous retrouvons également les plateformes cloud FPGA pour l'éducation. Une université chinoise a jugé intéressant d'intégrer un pool de ressources FPGA à disposition des étudiants informatique pour qu'ils développent leur capacité à visualiser le matériel et les logiciels dans un systÚme informatique. Les étudiants acquiÚrent ainsi une méthodologie et des pratiques de co-conception matériel-logiciel[107].

Efficacité énergétique

Un centre de donnĂ©es reprĂ©sente la majeure partie de la consommation d'Ă©nergie dans l'infrastructure Cloud. De nos jours, les centres de donnĂ©es contiennent des milliers de nƓuds de calcul qui consomment une Ă©norme quantitĂ© d'Ă©lectricitĂ©[108]. MalgrĂ© l'innovation mondiale appliquĂ©e au Green cloud computing, la plupart des entreprises informatiques choisissent d'acheter simplement de l'Ă©nergie au prix le plus bas au lieu d'augmenter l'efficacitĂ© des nƓuds de calcul[109].

Augmenter les performances sur le Cloud, c'est augmenter le nombre de nƓuds de calcul, ce qui conduit Ă  augmenter la consommation d'Ă©nergie. D'autre part, les nƓuds de calcul basĂ©s sur le CPU peuvent ĂȘtre remplacĂ©s par des solutions matĂ©rielles optimisĂ©es, dont l'efficacitĂ© est Ă©videmment plus Ă©levĂ©e[110]. Les processeurs universels tels que Atom et Xeon ne sont pas conçus pour offrir une efficacitĂ© maximale pour chaque application [111]. L'un des moyens possibles d'amĂ©liorer l'efficacitĂ© Ă©nergĂ©tique du nƓud de Cloud computing consiste Ă  utiliser des accĂ©lĂ©rateurs matĂ©riels basĂ©s sur FPGA[108] et dĂ©charger des applications vers un matĂ©riel dĂ©diĂ©[111].

Les avantages des ressources FPGA sont la maniÚre optimisée d'utiliser la solution matérielle[110] et leur excellent rapport performances/consommation[112]. Il est possible d'appliquer une solution FPGA optimisée basée sur le matériel pour une tùche de calcul précise améliorant significativement l'efficacité du calcul et la réduction de la consommation d'énergie du centre de données[110]. Les FPGA dans le cloud ont principalement été proposés pour une informatique plus verte réduisant ainsi l'énergie donc les coûts d'exploitation et les investissements dans les infrastructures pour les sources d'énergie vertes[113].

L'utilisation de FPGA sur des modÚles informatiques existants tels que le Big Data permet une réduction de la puissance et une augmentation significative de l'efficacité énergétique[114].

Références

  1. Fahmy 2015, p. 430
  2. Fahmy 2015, p. 431
  3. Skhiri 2019, p. 01
  4. Wang 2013, p. 01
  5. Cilardo 2016, p. 1622
  6. Yanovskaya1 2014, p. 01
  7. SDAccel
  8. Tarafdar 2018
  9. OpenCL
  10. Tarafdar 2018, p. 25
  11. Zhang 2017
  12. Zhang 2017, p. 03
  13. Ryota 2019
  14. Ryota 2019, p. 02
  15. Abel 2017
  16. Abel 2017, p. 29
  17. Fielding 2000
  18. Vaishnav 2016, p. 132
  19. Bollengier 2016, p. 01
  20. Mbongue 2018
  21. virtio-vsock
  22. Mbongue 2018, p. 863
  23. Mbongue 2018, p. 864
  24. Bobda 2017, p. 50
  25. Wang 2013, p. 03
  26. Wang 2013, p. 04
  27. Shi 2012, p. 805
  28. Shi 2012, p. 806
  29. Gupta 2009, p. 18
  30. Knodel 2015, p. 341
  31. Knodel 2017, p. 34
  32. J.E. 2005, p. 36
  33. Knodel 2017, p. 35
  34. Xillybus
  35. Vivado-Design
  36. Putnam 2015, p. 11
  37. Putnam 2015, p. 12
  38. Putnam 2015, p. 13
  39. Putnam 2015, p. 14
  40. Putnam 2015, p. 16
  41. Putnam 2015, p. 17
  42. Zha 2020, p. 845
  43. Zha 2020, p. 848
  44. Zha 2020, p. 849
  45. Zha 2020, p. 850
  46. Zha 2020, p. 851
  47. Safarulla 2014
  48. Sari 2014
  49. Safarulla 2014, p. 1036
  50. Safarulla 2014, p. 1037
  51. Sari 2014, p. 237
  52. Manuzzato 2009
  53. Safarulla 2014, p. 1038
  54. alpha particle
  55. Keller 2019, p. 273
  56. Keller 2019, p. 277
  57. Keller 2019, p. 278
  58. Xu 2015, p. 20
  59. Jin 2020, p. 22
  60. Xu 2015, p. 04
  61. Herder 2014
  62. Jin 2020, p. 24
  63. Tian 2020
  64. Herder 2014, p. 1127
  65. Hussain 2018, p. 02
  66. Xu 2015, p. 17
  67. Jin 2020, p. 23
  68. Hussain 2018, p. 01
  69. Xu 2015, p. 21
  70. Jin 2020, p. 14
  71. Krieg 2016, p. 01
  72. Gnad 2017
  73. Jin 2020, p. 10
  74. Amazon F1
  75. AWS Cloud Crypto
  76. Deep-Learning
  77. OVH Accelize
  78. Accelize
  79. Huawei FPGA
  80. Microsoft ML
  81. Chen 2019, p. 73
  82. Wang 2019, p. 01
  83. Wang 2019, p. 03
  84. Chen 2019, p. 79
  85. Blott 2015, p. 01
  86. Choi 2018, p. 01
  87. Chalamalasetti 2013, p. 245
  88. Choi 2018, p. 08
  89. Lavasani 2014, p. 60
  90. Chalamalasetti 2013, p. 253
  91. Byma 2014, p. 114-115
  92. Byma 2014, p. 116
  93. NFV Intel
  94. Pinneterre 2018, p. 01
  95. Paolino 2017, p. 01
  96. Wang2 2013, p. 2589
  97. Wang2 2013, p. 2592
  98. Cilardo 2016, p. 1627
  99. Will 2017, p. 451
  100. Xu 2015, p. 16
  101. Neshatpour 2015, p. 115
  102. Kachris 2017, p. 357
  103. Xu 2015, p. 23
  104. Neshatpour 2015, p. 118
  105. Wu 2019, p. 277
  106. Wu 2020, p. 265
  107. Zhang 2019, p. 927
  108. Yanovskaya 2014, p. 01
  109. Yanovskaya 2014, p. 03
  110. Yanovskaya 2014, p. 02
  111. Neshatpour 2015, p. 121
  112. Proaño Orellana 2016, p. 01
  113. Will 2017, p. 453
  114. Neshatpour 2015, p. 122

Bibliographie

Document utilisĂ© pour la rĂ©daction de l’article : document utilisĂ© comme source pour la rĂ©daction de cet article.

  • (en) Fei Chen, Yi Shan, Yu Zhang, Yu Wang, Hubertus Franke, Xiaotao Chang et Kun Wang, « Enabling FPGAs in the cloud », Proceedings of the 11th ACM Conference on Computing Frontiers,‎ , p. 1-10 (ISBN 9781450372558, DOI 10.1145/2597917.2597929)
  • (en) Yue Zha et Jing Li, « Virtualizing FPGAs in the Cloud », ASPLOS '20: Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems,‎ , p. 845-858 (ISBN 9781450371025, DOI 10.1145/3373376.3378491)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Watanabe Ryota, Saika Ura, Qian Zhao et Takaichi Yoshida, « Implementation of FPGA Building Platform as a Cloud Service », HEART 2019: Proceedings of the 10th International Symposium on Highly-Efficient Accelerators and Reconfigurable Technologies,‎ , p. 1-6 (ISBN 9781450372558, DOI 10.1145/3337801.3337814)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Anca Iordache, Pierre Guillaume, Peter Sanders, Jose Gabriel de F. Coutinho et Mark Stillwell, « High performance in the cloud with FPGA groups », Proceedings of the 9th International Conference on Utility and Cloud Computing,‎ , p. 1-10 (ISBN 9781450346160, DOI 10.1145/2996890.2996895)
  • (en) Christophe Bobda et Ken Eguro, « Introduction to the Special Section on Security in FPGA-accelerated Cloud and Datacenters », ACM Transactions on Reconfigurable Technology and Systems,‎ , p. 1-10 (ISSN 1936-7406, DOI 10.1145/3352060)
  • (en) Naif Tarafdar, Thomas Lin, Eric Fukuda, Hadi Bannazadeh, Alberto Leon-Garcia et Paul Chow, « Enabling Flexible Network FPGA Clusters in a Heterogeneous Cloud Data Center », Proceedings of the 2017 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays,‎ , p. 237–246 (ISBN 9781450343541, DOI 10.1145/3020078.3021742)
  • (en) Ke Zhang, Yisong Chang, Mingyu Chen, Yungang Bao et Zhiwei Xu, « Computer Organization and Design Course with FPGA Cloud », Proceedings of the 50th ACM Technical Symposium on Computer Science Education,‎ , p. 927–933 (ISBN 9781450358903, DOI 10.1145/3287324.3287475)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Jiansong Zhang, Yongqiang Xiong, Ningyi Xu, Ran Shu, Bojie Li, Peng Cheng et Guo Chen, « The Feniks FPGA Operating System for Cloud Computing », Proceedings of the 8th Asia-Pacific Workshop on Systems,‎ , p. 1–7 (ISBN 9781450351973, DOI 10.1145/3124680.3124743)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Andrew M. Keller, « Impact of Soft Errors on Large-Scale FPGA Cloud Computing », Proceedings of the 2019 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays,‎ , p. 272–281 (ISBN 9781450361378, DOI 10.1145/3289602.3293911)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Yao Chen, Jiong He, Xiaofan Zhang, Cong Hao et Deming CHen, « Cloud-DNN: An Open Framework for Mapping DNN Models to Cloud FPGAs », Proceedings of the 2019 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays,‎ , p. 73–82 (ISBN 9781450361378, DOI 10.1145/3289602.3293915)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Hussain Siam U, Bita Darvish Rouhani, Mohammad Ghasemzadeh et Farinaz Koushanfar, « MAXelerator: FPGA accelerator for privacy preserving multiply-accumulate (MAC) on cloud servers », DAC '18: Proceedings of the 55th Annual Design Automation Conference,‎ , p. 1-6 (DOI 10.1145/3195970.3196074)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Rym Skhiri, Virginie Fresse, Jean Paul Jamont, Benoit Suffran Suffran et Jihene Malek, « From FPGA to Support Cloud to Cloud of FPGA: State of the Art », International Journal of Reconfigurable ComputingVolume 2019, Article ID 8085461, 17 pages,‎ , p. 1-17 (DOI 10.1155/2019/8085461)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Jiasheng Wang, Yu Zhou, Yuyang Sun, Keyang Li et dand JunLiu, « Cloud Server Oriented FPGA Accelerator for LongShort-Term Memory Recurrent Neural Networks », IOP Conf. Series: Journal of Physics: Conf. Series1284 (2019) 012044,‎ , p. 1-11 (DOI 10.1088/1742-6596/1284/1/012044)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Julio Proaño Orellana, Blanca Caminero, Carmen CarriĂłn, Luis Tomas, Selome Kostentinos Tesfatsion et Johan Tordsson, « FPGA-Aware Scheduling Strategies at Hypervisor Level inCloud Environments », Scientific Programming Volume 2016, Article ID 4670271, 12 pages,‎ , p. 1-13 (DOI 10.1155/2016/4670271)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Shanquan Tian, Wenjie Xiong, Ilias Giechaskiel, Kasper Rasmussen et Jakub Szefer, « Fingerprinting Cloud FPGA Infrastructures », FPGA 2020 - 2020 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays,‎ , p. 1-8 (DOI 10.1145/3373087.3375322)
  • (en) Burkhard Ringlein, Francois Abel, Alexander Ditter, Beat Weiss, Christoph Hagleitner et Dietmar Fey, « System architecture for network-attached FPGAs inthe Cloud using partial reconfiguration », Accepted for FPL 2019,‎ , p. 1-8 (DOI 10.1109/FPL.2019.00054)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) J. Mbongue, F. Hategekimana, D. Tchuinkou Kwadjo, D. Andrews et C. Bobda, « FPGAVirt: A Novel Virtualization Framework for FPGAs in the Cloud », 2018 IEEE 11th International Conference on Cloud Computing (CLOUD),‎ , p. 862-865 (ISSN 2159-6190, DOI 10.1109/CLOUD.2018.00122)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) S. A. Fahmy, K. Vipin et S. Shreejith, « Virtualized FPGA Accelerators for Efficient Cloud Computing », 2015 IEEE 7th International Conference on Cloud Computing Technology and Science (CloudCom),‎ , p. 430-435 (DOI 10.1109/CloudCom.2015.60)
  • (en) V. Kulanov, A. Perepelitsyn et I. Zarizenko, « Method of development and deployment of reconfigurable FPGA-based projects in cloud infrastructure », 2018 IEEE 9th International Conference on Dependable Systems, Services and Technologies (DESSERT),‎ , p. 103-106 (DOI 10.1109/DESSERT.2018.8409108)
  • (en) A. Cilardo et D. Argenziano, « Securing the cloud with reconfigurable computing: An FPGA accelerator for homomorphic encryption », 2016 Design, Automation Test in Europe Conference Exhibition (DATE),‎ , p. 1622-1627 (ISBN 978-3-9815-3707-9, ISSN 1558-1101)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) M. A. Will et R. K. L. Ko, « Secure FPGA as a Service — Towards Secure Data Processing by Physicalizing the Cloud », 2017 IEEE Trustcom/BigDataSE/ICESS,‎ , p. 449-455 (ISSN 2324-9013, DOI 10.1109/Trustcom/BigDataSE/ICESS.2017.270)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) S. Byma, J. G. Steffan, H. Bannazadeh, A. L. Garcia et P. Chow, « FPGAs in the Cloud: Booting Virtualized Hardware Accelerators with OpenStack », 2014 IEEE 22nd Annual International Symposium on Field-Programmable Custom Computing Machines,‎ , p. 109-116 (DOI 10.1109/FCCM.2014.42)
  • (en) A. A. Al-Aghbari et M. E. S. Elrabaa, « Cloud-Based FPGA Custom Computing Machines for Streaming Applications », IEEE Access, vol. 7,‎ , p. 38009-38019 (ISSN 2169-3536, DOI 10.1109/ACCESS.2019.2906910)
  • (en) T. La, K. Matas, K. Pham et D. Koch, « Securing FPGA Accelerators at the Electrical Level for Multi-tenant Platforms », 2020 30th International Conference on Field-Programmable Logic and Applications (FPL),‎ , p. 361-362 (ISSN 1946-1488, DOI 10.1109/FPL50879.2020.00069)
  • (en) D. R. E. Gnad, F. Oboril et M. B. Tahoori, « Voltage drop-based fault attacks on FPGAs using valid bitstreams », 2017 27th International Conference on Field Programmable Logic and Applications (FPL),‎ , p. 1-7 (ISSN 1946-1488, DOI 10.23919/FPL.2017.8056840)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) J. Fowers, G. Brown, P. Cooke et G. Stitt, « A Performance and Energy Comparison of FPGAs, GPUs, and Multicores for Sliding-Window Applications », Proceedings of the ACM/SIGDA International Symposium on Field Programmable Gate Arrays,‎ , p. 47-56 (ISBN 9781450311557, DOI 10.1145/2145694.2145704)
  • (en) Sai Rahul Chalamalasetti, Kevin Lim, Mitch Wright, Alvin AuYoung, Parthasarathy Ranganathan et Martin Margala, « An FPGA memcached appliance », Proceedings of the ACM/SIGDA International Symposium on Field Programmable Gate Arrays,‎ , p. 245-254 (ISBN 9781450318877, DOI 10.1145/2435264.2435306)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Michaela Blott, Liu Ling, Kimon Karras et Kees Vissers, « Scaling out to a Single-Node 80Gbps Memcached Server with 40terabytes of Memory », Proceedings of the 7th USENIX Conference on Hot Topics in Storage and File Systems,‎ , p. 1-8 (DOI 10.5555/2827701.2827709)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Kevin Lim, David Meisner, Ali G. Saidi, Parthasarathy Ranganathan et Thomas F. Wenisch, « Thin Servers with Smart Pipes: Designing SoC Accelerators for Memcached », Proceedings of the 40th Annual International Symposium on Computer Architecture,‎ , p. 36-47 (ISSN 0163-5964, DOI 10.1145/2485922.2485926)
  • (en) M. Lavasani, H. Angepat et D. Chiou, « An FPGA memcached appliance », EEE Computer Architecture Letters,‎ , p. 57-60 (ISSN 1556-6064, DOI 10.1109/L-CA.2013.17)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Jongsok Choi, Ruolong Lian, Zhi Li, Andrew Canis et Jason Anderson, « Accelerating Memcached on AWS Cloud FPGAs », Proceedings of the 9th International Symposium on Highly-Efficient Accelerators and Reconfigurable Technologies,‎ , p. 1-8 (ISBN 9781450365420, DOI 10.1145/3241793.3241795)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Tarek El-Ghazawi, Kris Gaj, Volodymyr Kindratenko et Duncan Buell, « The Promise of High-Performance Reconfigurable Computing », IEEE Computer, vol. 41, no. 2, pp. 69–76, 2008,‎ , p. 1-8 (DOI 10.1109/MC.2008.65)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Wei Wang, Miodrag Bolic et Jonathan Parri, « pvFPGA: Accessing an FPGA-based hardware accelerator in a paravirtualized environment », 2013 International Conference on Hardware/Software Codesign and System Synthesis,‎ , p. 1-9 (ISBN 978-1-4799-1417-3, DOI 10.1109/CODES-ISSS.2013.6658997)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) J.E. Smith et Ravi Nair, « The architecture of virtual machines », Computer (Volume: 38, Issue: 5, May 2005),‎ , p. 32-38 (DOI 10.1109/MC.2005.173)
  • (en) Oliver Knodel, Paul R. Genssier et Rainer G. Spallek, « Migration of long-running Tasks between Reconfigurable Resources using Virtualization », ACM SIGARCH Computer Architecture News, vol. 44, no Issue 4,‎ , p. 56-61 (ISSN 0163-5964, DOI 10.1145/3039902)
  • (en) Oliver Knodel et Rainer G. Spallek, « Computing framework fordynamic integration of reconïŹgurable resources in a cloud », 2015 Euromicro Conference on Digital System Design,‎ , p. 337 - 344 (DOI 10.1109/DSD.2015.37)
  • (en) Xiaolan Zhang, Suzanne McIntosh, Pankaj Rohatgi et John Linwood Griffin, « XenSocket: A High-Throughput Interdomain Transport for Virtual Machines », ACM/IFIP/USENIX International Conference on Distributed Systems Platforms and Open Distributed Processing Middleware 2007,‎ , p. 184 - 203 (ISBN 978-3-540-76777-0, DOI 10.1007/978-3-540-76778-7_10)
  • (en) Anuj Vaishnav, Khoa Dang Pham et Dirk Koch, « A Survey on FPGA Virtualization », 28th International Conference on Field Programmable Logic and Applications (FPL) Processing,‎ , p. 131 - 138 (DOI 10.1109/FPL.2018.00031)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Andrew Putnam, Adrian M. Caulfield et Eric Chung et al., « A Reconfigurable Fabric for Accelerating Large-Scale Datacenter Services », IEEE Micro, vol. 35, no Issue 3,‎ , p. 10 - 22 (ISSN 1937-4143, DOI 10.1109/MM.2015.42)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Philippos Papaphilippou, Jiuxi Meng et Wayne Luk, « High-Performance FPGA Network Switch Architecture », Proceedings of the 2020 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays,‎ , p. 76–85 (ISBN 9781450370998, DOI 10.1145/3373087.3375299)
  • (en) W. Wang et X. Huang, « FPGA implementation of a large-number multiplier for fully homomorphic encryption », 2013 IEEE International Symposium on Circuits and Systems (ISCAS),‎ , p. 2589-2592 (DOI 10.1109/ISCAS.2013.6572408)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Oliver Knodel et Paul R. Genssler, « Virtualizing Reconfigurable Hardware to Provide Scalability in Cloud Architectures », CENICS 2017 : The Tenth International Conference on Advances in Circuits, Electronics and Micro-electronics,‎ , p. 33 - 38 (ISBN 978-1-61208-585-2)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Cristophe Bobda, Joshua Mead, Taylor J. L. Whitak, Charles Kwiat et Kevin Kamhoua, « Hardware Sandboxing: A Novel Defense Paradigm Against Hardware Trojans in Systems on Chip », International Symposium on Applied Reconfigurable Computing 2017,‎ , p. 47-59 (DOI 10.1007/978-3-319-56258-2_5)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) O Yanovskaya1, M. Yanovsky1 et V. Kharchenko1, « The Concept of Green Cloud Infrastructure Based on Distributed Computing and Hardware Accelerator within FPGA as a Service », Proceedings of IEEE East-West Design & Test Symposium (EWDTS 2014),‎ , p. 1-4 (ISBN 978-1-4799-7630-0, DOI 10.1109/EWDTS.2014.7027089)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Rusty Russel, « virtio: towards a de-facto standard for virtual I/O devices », ACM SIGOPS Operating Systems Review, vol. 42, no Issue 5,‎ , p. 95-103 (ISSN 0163-5980, DOI 10.1145/1400097.1400108)
  • (en) Chenglu Jin, Vasudev Gohil, Ramesh Karri et Jeyavijayan Rajendran, « Security of Cloud FPGAs: A Survey », ACM Comput. Surv., Vol. 0, No. 0, Article 0, vol. 0, no 0,‎ , p. 1-32Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Christoforos Kachris, Dionysios Diamantopoulos, Georgios Ch. Sirakoulis et Dimitrios Soudris, « An FPGA-based Integrated MapReduce Accelerator Platform », Journal of Signal Processing Systems,‎ , p. 357–369 (ISSN 1939-8115, DOI 10.1007/s11265-016-1108-7)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Lei Xu, Dionysios Pham, Hanyee Kim, Weidong Shi et Taeweon Suh, « END-TO-END BIG DATA PROCESSING PROTECTION IN CLOUD ENVIRONMENT USING BLACK BOXES - AN FPGA APPROACH », Services Transactions on Cloud Computing,‎ , p. 16-29 (DOI 10.29268/stcc.2015.0002)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) L. Wu, D. Bruns-Smith, F. A. Nothaft, Q. Huang, S. Karandikar, J. Le, A. Lin, H. Mao, B. Sweeney, K. Asanović, D. A. Patterson et A. D. Joseph, « FPGA Accelerated INDEL Realignment in the Cloud », 2019 IEEE International Symposium on High Performance Computer Architecture (HPCA),‎ , p. 277-290 (DOI 10.1109/HPCA.2019.00044)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Vishakha Gupta, Ada Gavrilovska, Karsten Schwan, Harshvardhan Kharche, Niraj Tolia, Vanish Talwar et Parthasarathy Ranganathan, « GViM: GPU-accelerated virtual machines », HPCVirt '09: Proceedings of the 3rd ACM Workshop on System-level Virtualization for High Performance Computing,‎ , p. 17-24 (ISBN 9781605584652, DOI 10.1145/1519138)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Lin Shi, Hao Chen, Jianhua Sun et Kenli Li, « vCUDA: GPU-Accelerated High-Performance Computing in Virtual Machines », IEEE Transactions on Computers, vol. 61, no Issue 6,‎ , p. 804-816 (ISSN 1557-9956, DOI 10.1109/TC.2011.112)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Joon-Myung Kang, Hadi Bannazadeh, Hesam Rahimi, Thomas Lin, Mohammad Faraji et Alberto Leon-Garcia, « Software-Defined Infrastructure and the Future Central Office », IEEE International Conference on Communications Workshops (ICC),‎ , p. 225-229 (ISBN 978-1-4673-5753-1, DOI 10.1109/ICCW.2013.6649233)
  • (en) Kizheppatt Vipin et Suhaib A. Fahmy, « DyRACT: A partial reconfiguration enabled accelerator and test platform », Proceedings of the International Conference on Field Programmable Logic and Applications (FPL),‎ , p. 1-7 (ISBN 978-3-00-044645-0, DOI 10.1109/FPL.2014.6927507)
  • (en) O. Yanovskaya, M. Yanovsky et V. Kharchenko, « The concept of green Cloud infrastructure based on distributed computing and hardware accelerator within FPGA as a Service », Proceedings of IEEE East-West Design & Test Symposium (EWDTS 2014),‎ , p. 1-4 (ISBN 978-1-4799-7630-0, DOI 10.1109/EWDTS.2014.7027089)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) K. Neshatpour, M. Malik, M. A; Ghodrat, A. Sasan et H. Homayoun, « Energy-efficient acceleration of big data analytics applications using FPGAs », 2015 IEEE International Conference on Big Data (Big Data),‎ , p. 115-123 (ISBN 978-1-4799-7630-0, DOI 10.1109/BigData.2015.7363748)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Christian Krieg, Clifford Wolf et Axel Jantsch, « Malicious LUT: a stealthy FPGA trojan injected and triggered by the design flow », ICCAD '16: Proceedings of the 35th International Conference on Computer-Aided Design, no Article No : 43,‎ , p. 1-8 (ISBN 9781450344661, DOI 10.1145/2966986.2967054)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Naif Tarafdar, Nariman Eskandari, Thomas Lin et Paul Chow, « Designing for FPGAs in the Cloud », IEEE Design & Test, vol. 35, no Issue 1,‎ , p. 23-29 (ISSN 2168-2356, DOI 10.1109/MDAT.2017.2748393)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Francois Abel, Jagath Weerasinghe, Christoph Hagleitner, Beat Weiss et Stephan Paredes, « An FPGA Platform for Hyperscalers », 2017 IEEE 25th Annual Symposium on High-Performance Interconnects (HOTI),‎ , p. 29-32 (ISBN 978-1-5386-1013-8, DOI 10.1109/HOTI.2017.13)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) S. Pinneterre, S. Chiotakis, M. Paolino et D. Raho, « vFPGAmanager: A Virtualization Framework for Orchestrated FPGA Accelerator Sharing in 5G Cloud Environments », 2018 IEEE International Symposium on Broadband Multimedia Systems and Broadcasting (BMSB),‎ , p. 1-5 (ISSN 2155-5052, DOI 10.1109/BMSB.2018.8436930)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) M. Paolino, S. Pinneterre et D. Raho, « FPGA virtualization with accelerators overcommitment for network function virtualization », 2017 International Conference on ReConFigurable Computing and FPGAs (ReConFig),‎ , p. 1-6 (ISBN 978-1-5386-3797-5, DOI 10.1109/RECONFIG.2017.8279796)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Jagath Weerasinghe, François Abel, Christoph Hagleitner et Andreas Herkersdorf, « Enabling FPGAs in Hyperscale Data Centers », 2015 IEEE 12th Intl Conf on Ubiquitous Intelligence and Computing and 2015 IEEE 12th Intl Conf on Autonomic and Trusted Computing and 2015 IEEE 15th Intl Conf on Scalable Computing and Communications and Its Associated Workshops (UIC-ATC-ScalCom),‎ , p. 1078-1086 (ISBN 978-1-4673-7211-4, DOI 10.1109/UIC-ATC-ScalCom-CBDCom-IoP.2015.199)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) T. J. Ham, D. Bruns-Smith, B. Sweeney, Y. Lee, S. H. Seo, U. G. Song, Y. H. Oh, K. Asanovic, J. W. Lee et L. W. Wills, « Genesis: A Hardware Acceleration Framework for Genomic Data Analysis », 2020 ACM/IEEE 47th Annual International Symposium on Computer Architecture (ISCA),‎ , p. 254-267 (ISBN 978-1-7281-4661-4, DOI 10.1109/ISCA45697.2020.00031)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Ishan M Safarulla et Karthika Manilal, « Design of Soft error tolerance technique for FPGA based soft core processors », 2014 IEEE International Conference on Advanced Communications, Control and Computing Technologies,‎ , p. 1036-1040 (ISBN 978-1-4799-3914-5, DOI 10.1109/ICACCCT.2014.7019254)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Aitzan Sari, Dimitris Agiakatsikas et Mihalis Psarakis, « A soft error vulnerability analysis framework for Xilinx FPGAs », FPGA '14: Proceedings of the 2014 ACM/SIGDA international symposium on Field-programmable gate arrays,‎ , p. 237-240 (ISBN 9781450326711, DOI 10.1145/2554688.2554767)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Roy T. Fielding et Richard N. Taylor, « Architectural Styles and the Design of Network-based Software Architectures », PhD thesis,‎ , p. 1-162 (ISBN 978-0-599-87118-2)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Andrea Manuzzato, « SINGLE EVENT EFFECTS ONF PGAs », PhD thesis,‎ , p. 1-105Document utilisĂ© pour la rĂ©daction de l’article
  • (en) C. Herder, M Yu et F Koushanfar, « Physical Unclonable Functions and Applications: A Tutorial », Proceedings of the IEEE, vol. 102, no 8,‎ , p. 1126-1141 (ISSN 1558-2256, DOI 10.1109/JPROC.2014.2320516)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Oliver Knodel, Paul R. Genssler, Fredo Erxleben et Rainer G. Spallek, « FPGAs and the Cloud – An Endless Tale of Virtualization, Elasticity and Efficiency », International Journal on Advances in Systems and Measurements, vol. 11, no 3 & 4,‎ , p. 230-249Document utilisĂ© pour la rĂ©daction de l’article
  • (en) Joon-Myung Kang, Hadi Bannazadeh et Alberto Leon-Garcia, « SAVI testbed: Control and management of converged virtual ICT resources », IFIP/IEEE International Symposium on Integrated Network Management (IM 2013),‎ , p. 664-667 (ISBN 978-3-901882-50-0)Document utilisĂ© pour la rĂ©daction de l’article
  • (en) ThĂ©otime Bollengier, Mohamad Najem Najem, Jean-Christophe Le Lann et LoĂŻc Lagadec, « Overlay Architectures For FPGA ResourceVirtualization », HAL archives-ouverte, no hal-0140591,‎ , p. 1-2Document utilisĂ© pour la rĂ©daction de l’article

Liens externes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.