Microsoft utilise de manière extensive des composants FPGA dans ses data centers pour doper les performances des microprocesseurs x86.

Après l’alliance OpenCAPI (Le groupe des 9 autour d’IBM défie Intel), c’est au tour de Microsoft de se tourner vers des solutions alternatives aux microprocesseurs x86 d’Intel. Dans un article qu’il vient de publier intitulé A Cloud-Scale Acceleration Architecture, Microsoft décrit une nouvelle architecture de cloud qui devrait permettre de fournir des solutions de hardware as a service sur son cloud Azure de manière plus performante en faisant appel à des circuits programmables alias FPGA (Field Programmable Gate Arrays). Cet article sera présenté lors du 49e symposium de l’IEEE sur les microarchitectures qui s’est tenu la semaine dernière à Taipei.

Cette annonce intervient au moment où Google a fait état de son intention d’utiliser des microprocesseurs non-Intel pour faire tourner ses data centers.

Dans son intervention lors de la conférence plénière aux dernières Microsoft Experiences qui se sont déroulées à Paris il y a quelques jours, Satya Nadela a mentionné l’utilisation de ces composants FPGA dans son offre de supercalculateur as a service sur Azure. Les puces FPGA sont des processeurs reprogrammables après avoir été fabriqués pour des applications spécifiques. Microsoft explore l’utilisation de tels composants depuis 2014 dans le cadre de son projet Catapult. Le mois dernier, Microsoft a indiqué qu’il utiliserait des puces FPGA pour son cloud Azure.

Les composants FPGA sont installés sur une carte fille connectée à la carte mère des serveurs et possède sa propre mémoire RAM. La connexion est assurée par une interface de type PCIe de troisième génération. Elles sont également reliées à un switch offrant une connexion de 40 Gbps transmettant les paquets provenant du réseau à l’unité centrale par l’intermédiaire d’un bus interne. Ils peuvent par exemple réaliser les chiffrements et le décryptage de données à la volée avec d’être pris en charge par l’application.

20-microsoft-1(Source : Microsoft)

Le résultat mis en avant par Microsoft est une réduction considérable du temps de latence dans la fourniture de services cloud utilisant ce type d’architecture. « En permettant à chaque composant FPGA de communiquer directement au switch du réseau, il peut ainsi échanger avec tous les autres circuits FPGA du data center sans utiliser le logiciel du CPU » explique l’éditeur. Et chaque FPGA peut être utilisé pour des traitements locaux grâce à cette connexion avec le CPU.

Microsoft utilise une telle architecture dans ses data centers qui supportent les services de son moteur de recherche sur Internet Bing. Il peut ainsi implémenter de nouveaux algorithmes au niveau du matériel. Les serveurs sont capables de traiter un nombre beaucoup plus important de requêtes et plus rapidement. Ce type d’architecture a été déployé dans nombre de data centers de Microsoft dans le monde. De son côté, Intel travaille au développement de processeurs Xeon x86 intégrant des puces FPGA. Des estimations indiqueraient que cette approche réduirait les coûts en matériel de 30 % et la consommation électrique de 10 % pour un traitement deux fois plus rapide.

D’autres acteurs de l’Internet qui utilisent des méga data centers ont également engagé des approches similaires. C’est ainsi que Facebook a lancé son Open Compute Initiative et développé ses propres serveurs avec un objectif comparable : innover sur le matériel à un rythme proche de celui du logiciel. Mais en concevant ses composants pour des tâches spécifiques, Microsoft pousse la démarche un peu plus avant. Ses services cloud Azure devraient prochainement bénéficier d’une telle architecture.