Préparer des GPU pour Azure Local (préversion)
S’applique à : Azure Local, version 23H2
Cet article explique comment préparer des unités de traitement graphique (GPU) sur votre instance locale Azure pour les charges de travail nécessitant beaucoup de calcul s’exécutant sur des machines virtuelles Arc et AKS activées par Azure Arc. Les GPU sont utilisés pour les charges de travail nécessitant beaucoup de calcul, telles que le Machine Learning et le Deep Learning.
Important
Cette fonctionnalité est actuellement en PRÉVERSION. Pour connaître les conditions juridiques qui s’appliquent aux fonctionnalités Azure en version bêta, en préversion ou plus généralement non encore en disponibilité générale, consultez l’Avenant aux conditions d’utilisation des préversions de Microsoft Azure.
Attachement de GPU sur Azure Local
Vous pouvez attacher vos GPU de deux façons pour Azure Local :
Affectation d’appareil discrète (DDA) : vous permet de dédier un GPU physique à votre charge de travail. Dans un déploiement DDA, les charges de travail virtualisées s’exécutent sur le pilote natif et disposent généralement d’un accès complet aux fonctionnalités du GPU. DDA offre le plus haut niveau de compatibilité des applications et de performances potentielles.
Partitionnement GPU (GPU-P) : vous permet de partager un GPU avec plusieurs charges de travail en fractionnant le GPU en partitions fractionnaires dédiées.
Tenez compte des fonctionnalités suivantes et prenez en charge les différences entre les deux options d’utilisation de vos GPU :
Description | Attribution d’appareils en mode discret | Partitionnement du GPU |
---|---|---|
Modèle de ressource GPU | Appareil entier | Appareil également partitionné |
Densité de machines virtuelles | Faible (un GPU à une machine virtuelle) | Élevé (un GPU à de nombreuses machines virtuelles) |
Compatibilité des applications | Toutes les fonctionnalités GPU fournies par le fournisseur (DX 12, OpenGL, CUDA) | Toutes les fonctionnalités GPU fournies par le fournisseur (DX 12, OpenGL, CUDA) |
VRAM de GPU | Jusqu’à la quantité de RAM vidéo prise en charge par le GPU | Jusqu'à VRAM pris en charge par le GPU par partition |
Pilote GPU dans l’invité | Pilote fournisseur GPU (NVIDIA) | Pilote fournisseur GPU (NVIDIA) |
Modèles GPU pris en charge
Pour afficher la liste complète des solutions prises en charge et des GPU disponibles, consultez Solutions locales Azure et sélectionnez prise en charge du GPU dans le menu de gauche pour obtenir des options.
NVIDIA prend en charge leurs charges de travail séparément avec leur logiciel GPU virtuel. Pour plus d’informations, consultez Microsoft Azure Local - Gpu NVIDIA pris en charge et plateformes de serveur validées.
Pour les charges de travail AKS, consultez les GPU pour AKS for Arc.
Les modèles GPU suivants sont pris en charge à l’aide des charges de travail de machine virtuelle DDA et GPU-P for Arc :
- NVIDIA A2
- NVIDIA A16
Ces modèles GPU supplémentaires sont pris en charge à l’aide de GPU-P (uniquement) pour les charges de travail de machine virtuelle Arc :
- NVIDIA A10
- NVIDIA A40
- NVIDIA L4
- NVIDIA L40
- NVIDIA L40S
Configuration requise pour l’hôte
Votre hôte local Azure doit répondre aux exigences suivantes :
Votre système doit prendre en charge une solution locale Azure avec prise en charge gpu. Pour parcourir vos options, consultez le catalogue local Azure.
Vous avez accès à Azure Local, version 23H2.
Vous devez créer une configuration homogène pour les GPU sur toutes les machines de votre système. Une configuration homogène consiste à installer la même fabrique et le même modèle de GPU.
Pour GPU-P, vérifiez que la prise en charge de la virtualisation et SR-IOV est activée dans le BIOS de chaque ordinateur du système. Contactez votre fournisseur de matériel si vous ne parvenez pas à identifier le paramètre approprié dans votre BIOS.
Préparer des pilotes GPU sur chaque hôte
Le processus de préparation et d’installation des pilotes GPU pour chaque machine diffère un peu entre DDA et GPU-P. Suivez le processus applicable pour votre situation.
Rechercher des GPU sur chaque hôte
Vérifiez d’abord qu’aucun pilote n’est installé pour chaque ordinateur. S’il existe un pilote hôte installé, désinstallez le pilote hôte et redémarrez l’ordinateur.
Après avoir désinstallé le pilote hôte ou si vous n’avez pas installé de pilote, exécutez PowerShell en tant qu’administrateur avec la commande suivante :
Get-PnpDevice -Status Error | fl FriendlyName, ClusterId
Vous devez voir que les appareils GPU apparaissent dans un état d’erreur, comme 3D Video Controller
indiqué dans l’exemple de sortie qui répertorie le nom convivial et l’ID d’instance du GPU :
[ASRR1N26R02U46A]: PS C:\Users\HCIDeploymentUser\Documents> Get-PnpDevice - Status Error
Status Class FriendlyName
------ ----- ------------
Error SD Host Controller
Error 3D Video Controller
Error 3D Video Controller
Error USB Unknown USB Device (Device Descriptor Request Failed)
[ASRR1N26R02U46A]: PS C:\Users\HCIDeploymentUser\Documents> Get-PnpDevice - Status Error | f1 InstanceId
InstanceId : PCI\VEN_8086&DEV_18DB&SUBSYS_7208086REV_11\3&11583659&0&E0
InstanceId : PCI\VEN_10DE&DEV_25B6&SUBSYS_157E10DE&REV_A1\4&23AD3A43&0&0010
InstanceId : PCI\VEN_10DE&DEV_25B6&SUBSYS_157E10DE&REV_A1\4&17F8422A&0&0010
InstanceId : USB\VID_0000&PID_0002\S&E492A46&0&2
Utilisation de DDA
Suivez ce processus si vous utilisez DDA :
1. Désactiver et démonter les GPU de l’hôte
Pour DDA, lorsque vous désinstallez le pilote hôte ou que vous disposez d’une nouvelle configuration locale Azure, le GPU physique passe à un état d’erreur. Vous devez démonter tous les appareils GPU pour continuer. Vous pouvez utiliser Gestionnaire de périphériques ou PowerShell pour désactiver et démonter le GPU à l’aide de l’étape ClusterID
précédente obtenue.
$id1 = "GPU_instance_ID"
Disable-PnpDevice -ClusterId $id1 -Confirm:$false
Dismount-VMHostAssignableDevice -ClusterPath $id1 -Force
Vérifiez que les GPU ont été correctement démontés à partir de l’ordinateur hôte. Les GPU seront désormais dans un Unknown
état :
Get-PnpDevice -Status Unknown | fl FriendlyName, ClusterId
Répétez ce processus pour chaque ordinateur de votre système pour préparer les GPU.
2. Télécharger et installer le pilote d’atténuation
Le logiciel peut inclure des composants développés et détenus par NVIDIA Corporation ou ses licences. L’utilisation de ces composants est régie par le contrat de licence utilisateur final NVIDIA.
Consultez la documentation NVIDIA pour télécharger le pilote d’atténuation NVIDIA applicable. Après avoir téléchargé le pilote, développez l’archive et installez le pilote d’atténuation sur chaque ordinateur hôte. Utilisez le script PowerShell suivant pour télécharger le pilote d’atténuation et l’extraire :
Invoke-WebRequest -Uri "https://docs.nvidia.com/datacenter/tesla/gpu-passthrough/nvidia_azure_stack_inf_v2022.10.13_public.zip" -OutFile "nvidia_azure_stack_inf_v2022.10.13_public.zip"
mkdir nvidia-mitigation-driver
Expand-Archive .\nvidia_azure_stack_inf_v2022.10.13_public.zip .\nvidia-mitigation-driver
Une fois les fichiers du pilote d’atténuation extraits, recherchez la version du modèle approprié de votre GPU et installez-la. Par exemple, si vous installiez un pilote d’atténuation NVIDIA A2, exécutez les opérations suivantes :
pnputil /add-driver nvidia_azure_stack_A2_base.inf /install /force
Pour confirmer l’installation de ces pilotes, exécutez :
pnputil /enum-devices OR pnputil /scan-devices
Vous devez être en mesure de voir les GPU correctement identifiés dans Get-PnpDevice
:
Get-PnpDevice -Class Display | fl FriendlyName, ClusterId
Répétez les étapes ci-dessus pour chaque hôte dans votre local Azure.
Utilisation de GPU-P
Suivez ce processus si vous utilisez GPU-P :
Télécharger et installer le pilote hôte
GPU-P nécessite des pilotes au niveau de l’hôte qui diffèrent de DDA. Pour les GPU NVIDIA, vous aurez besoin d’un pilote graphique logiciel NVIDIA vGPU sur chaque hôte et sur chaque machine virtuelle qui utilisera GPU-P. Pour plus d’informations, consultez la dernière version de la documentation nvidia vGPU et des détails sur les licences dans le Guide utilisateur des licences clientes.
Après avoir identifié les GPU comme 3D Video Controller
sur votre ordinateur hôte, téléchargez le pilote de processeur virtuel hôte. Par le biais de votre licence NVIDIA GRID, vous devez être en mesure d’obtenir le pilote hôte approprié .zip fichier.
Vous devez obtenir et déplacer le dossier suivant vers votre ordinateur hôte : \vGPU_<Your_vGPU_version>_GA_Azure_Stack_HCI_Host_Drivers
Accédez à \vGPU_<Your_vGPU_version>_GA_Azure_Stack_HCI_Host_Drivers\Display.Driver et installez le pilote.
pnputil /add-driver .\nvgridswhci.inf /install /force
Pour confirmer l’installation de ces pilotes, exécutez :
pnputil /enum-devices
Vous devez être en mesure de voir les GPU correctement identifiés dans Get-PnpDevice
:
Get-PnpDevice -Class Display | fl FriendlyName, ClusterId
Vous pouvez également exécuter l’interface nvidia-smi
de gestion du système NVIDIA pour répertorier les GPU sur l’ordinateur hôte comme suit :
nvidia-smi
Si le pilote est correctement installé, une sortie similaire à l’exemple suivant s’affiche :
Wed Nov 30 15:22:36 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 527.27 Driver Version: 527.27 CUDA Version: N/A |
|-------------------------------+----------------------+----------------------+
| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA A2 WDDM | 00000000:65:00.0 Off | 0 |
| 0% 24C P8 5W / 60W | 15192MiB / 15356MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
| 1 NVIDIA A2 WDDM | 00000000:66:00.0 Off | 0 |
| 0% 24C P8 5W / 60W | 15192MiB / 15356MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
Configurer le nombre de partitions du GPU
Procédez comme suit pour configurer le nombre de partitions GPU dans PowerShell :
Remarque
Lorsque vous utilisez PowerShell, vous devez vérifier manuellement que la configuration gpu est homogène sur toutes les machines de votre instance Azure Local.
Connectez-vous à la machine dont vous souhaitez configurer le nombre de partitions GPU.
Exécutez la
Get-VMHostPartitionableGpu
commande et reportez-vous aux valeurs Name et ValidPartitionCounts .Exécutez la commande suivante pour configurer le nombre de partitions. Remplacez
GPU-name
par la valeur Nom etpartition-count
par l'un des comptes pris en charge dans la valeur ValidPartitionCounts :Set-VMHostPartitionableGpu -Name "<GPU-name>" -PartitionCount <partition-count>
Par exemple, la commande suivante configure le nombre de partitions sur
4
:PS C:\Users> Set-VMHostPartitionableGpu -Name "\\?\PCI#VEN_10DE&DEV_25B6&SUBSYS_157E10DE&REV_A1#4&18416dc3&0&0000#{064092b3-625e-43bf-9eb5-dc845897dd59}" -PartitionCount 4
Vous pouvez réexécuter la commande
Get-VMHostPartitionableGpu | FL Name,ValidPartitionCounts,PartitionCount
pour vérifier que le nombre de partitions est défini sur4
.Voici un exemple de sortie :
PS C:\Users> Get-VMHostPartitionableGpu | FL Name,ValidPartitionCounts,PartitionCount Name : \\?\PCI#VEN_10DE&DEV_25B6&SUBSYS_157E10DE&REV_A1#4&18416dc3&0&0000#{064092b3-625e-43bf-9eb5-dc845897dd59} ValidPartitionCounts : {16, 8, 4, 2...} PartitionCount : 4 Name : \\?\PCI#VEN_10DE&DEV_25B6&SUBSYS_157E10DE&REV_A1#4&5906f5e&0&0010#{064092b3-625e-43bf-9eb5-dc845897dd59} ValidPartitionCounts : {16, 8, 4, 2...} PartitionCount : 4
Pour conserver la configuration homogène, répétez les étapes de configuration du nombre de partitions sur chaque ordinateur de votre système.
Conditions requises pour les invités
La gestion gpu est prise en charge pour les charges de travail de machine virtuelle Arc suivantes :
Machines virtuelles de 2e génération
Un système d’exploitation 64 bits pris en charge, comme indiqué dans la dernière prise en charge des produits pris en charge par NVIDIA vGPU