Alexander - stock.adobe.com
OpenStack s’attaque à l’accélération hardware à grande échelle
Avec le framework de gestion Cyborg notamment, la prise en charge des GPU et des FPGA devient un enjeu majeur pour OpenStack.
Le machine learning (ML), l’intelligence artificielle (IA) sont les domaines où la fondation OpenStack compte se concentrer. Il s’agit notamment de tirer profit au mieux du hardware, et en particulier des GPU, largement sollicités dans le machine learning. Rappelons que dans OpenStack Train, la sécurité est prise en charge matériellement grâce à AMD SEV.
Le projet en pointe, en termes d’accélération hardware, est Cyborg un framework servant à gérer les ressources matérielles spécialisées de type FPGA ou GPU. Cyborg est issu de Nomad, un module de prise en charge des FPGA, mais restreint à l’origine au marché des télécoms.
Des clouds de GPU
L’idée derrière Cyborg ? Créer un cloud OpenStack exploitant uniquement des GPU ou des FPGA. Comme pour une infrastructure OpenStack de base, la problématique principale est l’orchestration à grande échelle (scale-out) des circuits spécialisés.
« Il ne s’agit plus juste de gérer du bare metal ou des machines virtuelles » affirme Jonathan Bryce, directeur exécutif de l’OpenStack Fundation (OSF), « mais d’administrer des clouds constitués de GPU ou de FPGA à très grande échelle pour des applications de machine learning, d’intelligence artificielle et d’autres workloads »… comme la reconnaissance faciale, un domaine où la Chine est particulièrement en pointe.
C’est sur ce point que l’OSF axe sa stratégie, avec Cyborg en particulier, pour aboutir à un provisionnement automatisé. « Cyborg offre ainsi un système de provisionnement qui permet de pousser les mises à jour des firmwares des FPGA d’un seul coup (en mode bulk) », décrit Jonathan Bryce.
Les laboratoires scientifiques sont les premiers à s’intéresser à Cyborg. Jonathan Bryce cite l’un d’entre eux sans le nommer, qui exploite un cloud OpenStack exploitant plusieurs milliers de GPU pour la reconnaissance d’images. Le framework Tensorflow s’exécute en containers orchestrés par Kubernetes, les GPU étant mis à contribution pendant la phase de calcul de gradients.
Partager les ressources GPU
Cette possibilité de manager différemment les circuits spécialisés ouvre la voie à d’autres applications. Très souvent, en entreprise, les datascientists bénéficient de machines ultra-performantes, bourrées des cartes les plus puissantes, dont ils ne se servent que la moitié du temps : « avec Cyborg, les entreprises peuvent provisionner ces machines plus facilement, durant les heures où elles ne sont pas utilisées par les scientifiques », explique Jonathan Bryce.
Certes, les « clouds de GPU » constitue des cas d’utilisation extrêmes, mais l’accélération matérielle est devenue un enjeu à tous les niveaux. L’edge computing dédié aux tâches de calcul en bordure de réseau, bénéficie lui aussi des capacités d’accélération hardware permises par Cyborg.
C’était d’ailleurs un des objectifs du projet initial Nomad, à savoir la prise en charge des cartes réseau (NIC, Network interface controller) dotées de FPGA conjointement avec le module Neutron. Mais aujourd’hui les serveurs en bout de réseau doivent accomplir rapidement des tâches de surveillance (contrôle du trafic routier, reconnaissance faciale ou des véhicules par exemple), d’analytics (synchronisation des feux tricolores), etc. Pour ce genre de tâche, la gestion des GPU devient nécessaire.