<div class='slidealt'>Expérimentez des extensions de <a title='virtualisation pour plateformes hétérogènes à base de processeurs ARM' href='/fr/produits/'>virtualisation KVM</a></div> <div class='slidealt'>Faites appelle à des <a title='services de full virtualisation pour kvm sur coeur ARM' href='/fr/services/'>services de virtualisation sur mesure</a></div> <div class='slidealt'>Virtualisation KVM des E/S's pour coeurs ARMv7, ARMv8 <a title='extensions de virtualisation de plateforme VFIO des E/S par kvm sur arm en logiciel libre' href='/fr/solutions/guides/vfio-sur-arm/'>par extensions VFIO/IOMMU</a></div> <div class='slidealt'>Projets de recherche de virtualisation <a title='kvm en logiciel libre pour ARM multicoeur' href='/fr/innovation/'>pour les systèmes embarqués et le cloud</a></div> <div class='slidealt'>Solutions de virtualisation pour systèmes <a title='solutions en logiciels libres de virtualisation pour ARMv7-ARMv8' href='/fr/solutions/'>hétérogènes multicoeur ARM</a></div>

Accélération des machines virtuelles par virtualisation complète des GPUs

mécanisme de virtualisation de GPU pour accélérer des machines virtuelles sur plate-formes ARM

Les unités de traitement graphiques (GPU) sont aujourd'hui utilisées non seulement pour effectuer des tâches graphiques mais aussi pour exécuter des applications à usage général pour réduire la charge de travail de l'unité centrale de traitement (CPU). Les systèmes SoC modernes intègrent désormais un GPU combiné à des CPUs. La virtualisation est devenue une technologie essentielle dans plusieurs domaines d'application, permettant ainsi à des machines virtuelles de bénéficier d'une accélération de GPU, non seulement pour améliorer l'expérience graphique dans des systèmes virtualisés mais aussi pour libérer des ressources CPU pour d'autres tâches.

L'utilisation de la virtualisation complète de la GPU dans des systèmes sur puce (SoC) de nouvelle génération facilite l'adoption du SoC lui-même dans plusieurs segments de marché, y compris les réseaux (Network Functions Virtualization - NFV), High Performance Computing (HPC), l'automobile et les objets connectés, la maison intelligente et les passerelles intelligentes, les smart-cells en télécommunication et les centres de données.

Virtualisation par affectation directe de GPU via VFIO

Des GPUs existantes peuvent être affectés efficacement à des machines virtuelles avec la soi-disant virtualisation par affectation directe via VFIO. Virtual Open Systems a développé le dispositif VFIO (Virtual Function I/O) pour périphériques de plateforme ARM, permettant ainsi à des périphériques d'hôte d'être reliés directement à une machine virtuelle. Grâce à VFIO, aucune intervention de l'hyperviseur n'est nécessaire pour gérer les interactions entre une machine virtuelle et le périphérique physique, fournissant une performance quasi native dans la virtualisation des périphériques. Par ailleurs, avec une telle approche le pilote natif du périphérique peut être utilisé tel quel dans le système d'exploitation d'invité. Les registres et les interruptions sont directement ré-dirigés vers la machine virtuelle, tandis que les accès DMA sont sécurisés par un IOMMU, ce qui garantit à ce que la GPU n'accède qu'à la zone de mémoire autorisée.

GPU passthrough par VFIO permet de virtualiser la GPU sur plate formes ARM par assignation directe

Architecture haut niveau de la virtualisation de GPU basée sur VFIO

La structure de VFIO pour ARM a besoin que le périphérique soit placé derrière un IOMMU, pour qu'il puisse être lié à une machine virtuelle. Ayant été directement impliqué dans le développement de VFIO sur ARM en logiciel libre pour les périphériques de la plateforme ARM, Virtual Open Systems fournit des solutions sur mesure basées sur VFIO pour l'activation de la virtualisation d'accélérateurs et de GPU:

  • Développement pour interfaces IOMMU
  • Support de périphériques en QEMU
  • Développement de pilotes en espace utilisateur
  • Solutions de virtualisation sur mesure

Virtualisation complète de GPU assistée par couche matérielle pour GPU virtuelle partagée (vGPU)

De plus en plus des GPU utilisent des extensions matérielles pour améliorer les fonctionnalités de virtualisation (e.g., par affectation directe à plusieurs machines virtuelles). Une couche matériel GPU crée des interfaces de GPU virtuelle (vGPU), fournissant une abstraction de GPU physiques multiples. Ces vGPUs peuvent être liés chacun à une machine virtuelle différente via VFIO, permettant ainsi une virtualisation complète de GPU à haute performance. En outre, les machines virtuelles peuvent encore utiliser le pilote natif du périphérique.

Virtualisation complète de GPU à haute performance par extensions matérielles pour permettre des assignations de vGPU aux machines virtuelles par VFIO

Architecture haut niveau d'une virtualisation complète par VFIO d'un GPU assisté par couche matérielle

De même, pour la virtualisation complète de GPU Virtual Open Systems offre des services professionnels de développement personnalisé pour une mise en place de la meilleure solution de virtualisation autour des GPUs avec extensions matérielles de virtualisation:

  • Développement d'interfaces IOMMU personnalisées
  • Développement QEMU pour des interfaces de vGPUs
  • Mise en oeuvre de composants personnalisés de gestion de vGPU, pour gérer l'ensemble du cycle de vie des interfaces vGPU
  • Affectation d'interfaces vGPU vers les machines virtuelles par le biais de VFIO
  • Support pour des mécanismes d'interruption (e.g., une seule interruption physique est partagée par tous vGPUs) et leur intégration dans VFIO et QEMU