Vous devez configurer correctement votre BIOS hôte pour activer le processeur graphique Nvidia pour le transfert ; par ailleurs, la machine virtuelle destinée à exécuter ces charges applicatives accélérées doit répondre à des exigences spécifiques. Consultez cette section pour connaître toutes ces exigences.
Cet article vous concerne uniquement si votre périphérique PCI mappe les régions de mémoire dont la taille totale est supérieure à 16 Go. Suivez les instructions publiées dans l’article 1010789 de la base de connaissances VMware pour activer les périphériques de transfert sous vSphere. En règle générale, les cartes qui nécessitent un mappage de mémoire supérieur à 16 Go sont des cartes haut de gamme. Vous devez suivre les instructions de cet article pour les activer en mode Transfert au sein d’une machine virtuelle.
La configuration de votre BIOS hôte doit prendre en charge les grandes régions de mémoire requises par ces périphériques PCI haut de gamme. Pour ce faire, recherchez le paramètre « Memory mapped I/O above 4GB » dans le BIOS hôte et activez-le.
Remarque : ces paramètres sont nécessaires uniquement si vous définissez le mode de démarrage du BIOS sur UEFI, si son mode Hérité ou BIOS vous permet d’ignorer les paramètres ci-dessous.
Pour accéder à ces mappages de mémoire volumineux, connectez-vous au système d’exploitation invité du site VMware Guest OS must boot with EFI (Le système d’exploitation invité doit démarrer avec EFI). Autrement dit, vous devez activer EFI dans la machine virtuelle, puis effectuer une installation EFI du système d’exploitation invité.
Un processeur graphique compatible PCI installé est initialement reconnu par l’hyperviseur vSphere au démarrage du serveur, sans qu’il ne soit nécessaire d’installer des pilotes spécifiques sur l’hyperviseur.
vSphere reconnaît tous les périphériques PCI de cette manière. Vous pouvez afficher la liste des périphériques PCI qui se trouvent dans l’outil vSphere Client en choisissant le serveur hôte sur lequel vous travaillez et en suivant les choix de menu.
Configurez « > Hardware » > « PCI Devices » > « Edit » pour afficher la liste, comme illustré dans un exemple de la Figure 2 ci-dessous.
Si le périphérique de processeur graphique particulier n’a pas été précédemment activé pour DirectPath I/O, vous pouvez placer le périphérique de processeur graphique en mode Direct Path I/O (transfert) en cochant la case sur l’entrée de périphérique, comme illustré dans l’exemple de périphérique NVIDIA.
Une fois les exigences ci-dessus satisfaites, vous devez ajouter deux entrées au fichier VMX de la machine virtuelle, soit en modifiant le fichier directement soit en utilisant vSphere Client pour ajouter ces fonctionnalités. La première entrée est la suivante :
pciPassthru.use64bitMMIO="TRUE"
|
Pour spécifier la deuxième entrée, un calcul simple est nécessaire. Additionnez les tailles de mémoire de tous les processeurs graphiques(*) que vous avez l’intention de transmettre à la machine virtuelle, puis arrondissez à la puissance de deux suivante. Par exemple, pour utiliser le transfert avec 4 périphériques A2 de 16 Go, la valeur doit être la suivante : 32 + 32 = 64, arrondie à la puissance de deux suivante, c’est-à-dire 128. Utilisez cette valeur dans la deuxième entrée :
pciPassthru.64bitMMIOSizeGB="128" |
Une fois ces deux modifications apportées au fichier VMX, suivez les instructions vSphere standard de l’article 1010789 de la base de connaissances VMware pour activer les périphériques de transfert au niveau de l’hôte et spécifier les périphériques devant être transmis à votre machine virtuelle. La machine virtuelle doit maintenant démarrer correctement avec votre périphériques en mode Transfert.
Dans vSphere Client, choisissez à nouveau la machine virtuelle et utilisez les options.
Edit Settings > VM Options >Advanced > Configuration Parameters > Edit Configuration » pour accéder à la liste des options PCI affichées ci-dessous.
Nous utilisons une approche simple pour calculer la valeur du paramètre « 64bitMMIOSizeGB ». Comptez le nombre de processeurs graphiques PCI haut de gamme que vous souhaitez transmettre à cette machine virtuelle. Il peut s’agir d’un ou de plusieurs processeurs graphiques. Multipliez ce nombre par 16 et arrondissez-le à la puissance de deux suivante.
Par exemple, pour utiliser le mode Transfert avec deux processeurs graphiques dans une machine virtuelle, la valeur serait la suivante : 4 * 16 = 64, arrondie à la puissance de deux suivante pour donner 128.
Dans cette section, nous vous expliquons comment attribuer un processeur graphique à la machine virtuelle. Mettez la machine virtuelle hors tension avant de lui attribuer le processeur graphique.
Pour activer l’accès d’une machine virtuelle à un périphérique PCI, dans vSphere Client, sélectionnez la machine virtuelle, utilisez l’option « Edit Settings » (Modifier les paramètres) et faites défiler l’écran vers le bas jusqu’à la liste des périphériques PCI. Si votre périphérique n’y figure pas déjà, utilisez le bouton « Add New Device » (Ajouter un nouveau périphérique) pour l’ajouter à la liste. Une fois le périphérique ajouté, les paramètres de votre machine virtuelle doivent être similaires à ceux illustrés à la Figure 7. Dans cet exemple, l’entrée pertinente est « PCI Device 0 ».
Lorsque le périphérique PCI est attribué à une machine virtuelle, la machine virtuelle doit disposer d’une réservation de mémoire pour la taille de mémoire entièrement configurée de la machine virtuelle. Cette opération s’effectue dans le client vSphere en choisissant la machine virtuelle, à l’aide de « Edit Settings > Virtual Hardware > Memory » pour accéder à la valeur et la modifier dans la zone Reservation.
Enfin, mettez la machine virtuelle sous tension. Après avoir mis la machine virtuelle sous tension, connectez-vous au système d’exploitation invité et vérifiez que le processeur graphique est présent.
"lspci | grep nvidia"
ou
Le processeur graphique est maintenant prêt à être utilisé par l’application en mode Transfert.
Si vous avez suivi les instructions ci-dessus et que votre machine virtuelle ne démarre toujours pas correctement avec les périphériques activés, consultez cette section. Si vous avez suivi les suggestions ci-dessous et que vous rencontrez toujours des problèmes, contactez-nous afin que nous puissions vous aider.
Problème de mappage :
Si une erreur similaire à celle-ci s’affiche dans le fichier vmware.log de la machine virtuelle :
1 | I120 : PCIPassthru: 0000:82:00.0 : Device BAR 0 requested 64-bit memory address that exceeded MPN type (62105227100160) |
Vos paramètres de BIOS ne répondent pas aux exigences ESXi pour l’activation de ce type de périphérique de transfert. Pour utiliser ESXi 6.0 p4 via ESXi 6.5, la mémoire mappée pour les périphériques PCI doit être inférieure à 16 To. Vous pouvez contourner ce problème à condition que votre BIOS vous permette de contrôler le niveau de mappage des régions de mémoire PCI dans d’espace d’adressage de la mémoire. Certains fabricants, dont SuperMicro, disposent d’options de BIOS permettant de modifier le niveau de mappage de cette mémoire. Sur les systèmes SuperMicro, il est possible de modifier la valeur par défaut de 56 To du paramètre MMIOHBase en sélectionnant une valeur plus basse. Les systèmes Sugon possèdent également un paramètre BIOS similaire (masqué). Contactez le fournisseur de votre système pour vérifier si votre BIOS prend en charge cette fonctionnalité de remappage. Une autre solution consiste à mettre à jour votre ESXi vers la version 6.5 u1 ou une version ultérieure, ce qui supprime la limite de 16 To.
Configuration incorrecte :
L’erreur suivante est consignée dans le fichier vmware.log :
1 | 2016-07-07T09:18:37.624Z| vmx| I120: PCIPassthru: total number of pages needed (2097186) exceeds limit (917504), failing |
Cette erreur indique que vous n’avez pas correctement activé les mappages « supérieurs à 4 Go » dans votre BIOS hôte, conformément aux instructions de la rubrique « BIOS hôte » ci-dessus, ou que vous n’avez pas correctement spécifié les entrées VMX.
Impossible d’utiliser le périphérique :
Si vous avez suivi toutes les instructions ci-dessus et que votre machine virtuelle a démarré correctement, mais qu’un message similaire au suivant s’affiche lors de l’exécution de l’utilitaire nvidia-smi dans votre système d’exploitation invité :
1 | Unable to determine the device handle for GPU 0000:13:00.0: Unknown Error |
Nous vous suggérons de contacter Nvidia directement ou d’effectuer une recherche sur Internet à l’aide de cette chaîne pour trouver des informations supplémentaires susceptibles de vous aider.