Azure Virtual Desktop + GPU = đŸŽïž

Cela faisait longtemps que je voulais tester une machine virtuelle disposant d’une carte graphique puissante dans un environnement Azure Virtual Desktop. Il arrive que des besoins graphiques soient prĂ©sents dans certains projets. Il est actuellement impossible de les satisfaire via Windows 365, mais Azure Virtual Desktop ne dit pas son dernier mot ! Presque tous les types de machine virtuelles Azure y sont disponibles.

Commençons par quelques rappels qui ne nous feront pas de mal 😎

Qu’est-ce qu’une machine virtuelle Azure ?

Vous pouvez lire mon article dédié aux VMs Azure ou regarder cette vidéo en français :

Qu’est-ce qu’une machine virtuelle GPU Azure ?

L’idĂ©e est la mĂȘme que pour une machine virtuelle classique, avec en plus une ou plusieurs cartes graphiques adaptĂ©es selon les besoins des utilisateurs :

Les tailles de machine virtuelle au GPU optimisĂ© sont des machines virtuelles spĂ©cialisĂ©es disponibles avec des GPU uniques, multiples ou fractionnaires. Ces tailles sont conçues pour des charges de travail de visualisation, mais Ă©galement de calcul et d’affichage graphique intensifs.

Microsoft Learn

Quels sont les GPUs disponibles sur Azure ?

Comme pour les autres machines virtuelles, les VM avec GPU sont organisées sous forme de séries, dont voici quelques exemples :

Peut-on créer une machine virtuelle GPU dans toutes les régions Azure ?

Malheureusement non, certaines régions ne disposent pas de VMs GPU, ou seulement certains SKUs y sont disponibles :

Pour nous aider, Microsoft a mis à disposition une page de documentation dédiée aux VMs GPU sous Azure Virtual Desktop. Plusieurs sujets y sont justement abordés :

Comme bien souvent, Dean Cefola de l’Azure Academy a lui-aussi postĂ© il y a quelques annĂ©es une vidĂ©o YouTube parlant de ce sujet trĂšs intĂ©ressant :

Afin de se faire une meilleure idĂ©e sur le rendu possible de l’ensemble GPU + AVD, je vous propose de rĂ©aliser un petit exercice combinant ces 2 services. Nous allons dĂ©tailler toutes les Ă©tapes nĂ©cessaires de la configuration aux tests de plusieurs applications :

Etape 0 – Rappel des prĂ©requis :

Pour réaliser cet exercice sur les VMs GPU via Azure Virtual Desktop, il vous faudra disposer de :

  • Un tenant Microsoft
  • Une souscription Azure valide

Note importante : pour effectuer des tests GPU sur Azure, une souscription MSDN ne sera pas acceptée.

En effet, les machines virtuelles graphiques sont restreintes et le Support de Microsoft n’a pas souhaitĂ© octroyer des quotas sur ma souscription Azure MSDN. J’ai donc utilisĂ© une souscription Azure payante pour rĂ©aliser ces tests GPU.

Etape I – PrĂ©paration de l’environnement Azure :

Comme indiqué précédemment, les souscriptions Azure sont restreintes dans la création de machines virtuelles dédiées aux besoins graphiques :

Cela est permet d’éviter un engorgement inutile de ces VMs trĂšs spĂ©cifiques, mais Ă©galement les mauvaises surprises au moment de recevoir la facture Azure.

Il est donc nĂ©cessaire de relever le quota d’une des sĂ©ries de VMs GPU pour rĂ©aliser cet exercice. Dans mon cas, je suis parti sur la sĂ©rie Standard NCASv3_T4.

Pour cela, rendez-vous dans le portail Azure, puis sur la page des quotas de votre souscription Azure, puis effectuez une demande d’élĂ©vation des quotas, en cliquant Ă  droite sur la sĂ©rie de VMs de votre choix :

8 vCPU me semblent suffisant pour créer une ou deux petites machines virtuelles GPU.

Attendez environ une minute que votre demande soit acceptĂ©e par l’IA de Microsoft :

Nous voici maintenant autorisĂ© Ă  crĂ©er 2 VMs GPU Standard NC4as T4 v3, Ă©quipĂ©es chacune d’un processeur AMD EPYC 7V12 et d’une carte graphique NVIDIA Tesla T4.

Continuons maintenant à créer une premiÚre VM GPU dans le but de préparer une image modÚle pour Azure Virtual Desktop.

Etape II – CrĂ©ation d’une machine virtuelle GPU :

Pour cela, rechercher le service Machines virtuelles sur le portail Azure :

Cliquez-ici pour commencer la création de la machine virtuelle :

Renseignez les informations de base relatives Ă  votre VM en choisissant bien une image OS Windows 11 en version 22H2 :

Choisissez la taille Standard NC4as T4 v3, puis définissez un compte administrateur local :

Bloquer les ports entrants, car nous utiliserons le service Azure Bastion, cochez la case concernant le droit de licence, puis cliquez sur Suivant :

Aucune modification n’est Ă  faire sur cet onglet, cliquez sur Suivant :

CrĂ©ez un nouveau rĂ©seau virtuel, retirez l’adresse IP publique, puis cliquez sur Suivant :

DĂ©cochez l’extinction automatique de la machine virtuelle, puis lancez la validation Azure :

Une fois la validation Azure rĂ©ussie, lancez la crĂ©ation des ressources de la VM GPU, puis attendez environ 5 minutes :

Une fois le déploiement terminé, cliquez-ici pour consulter votre machine virtuelle GPU :

Cliquez-ici pour déclencher le déploiement du service Azure Bastion :

Attendez environ 5 minutes qu’Azure Bastion soit dĂ©ployĂ© pour continuer cet exercice :

Une fois qu’Azure Bastion a fini son dĂ©ploiement, ouvrez une session de bureau Ă  distance via ce dernier en utilisant les identifiants administrateurs renseignĂ©s lors de la crĂ©ation de la VM GPU :

Cliquez sur Suivant :

Cliquez sur Accepter :

La machine virtuelle est enfin déployée et accessible. Intéressons-nous maintenant à la configuration additionnelle que requiÚre une VM GPU.

Etape III – Post-configuration GPU 1/2 :

Pour que la carte graphique soit pleinement exploitĂ©e, il est nĂ©cessaire d’installer un pilote adaptĂ©. Microsoft en parle juste ici.

Par un clic droit sur le menu Démarrer, ouvrez le Gestionnaire des périphériques Windows :

Notez l’absence de la carte NVIDIA Tesla T4, et la prĂ©sence d’une carte graphique encore non identifiĂ©e dans les autres pĂ©riphĂ©riques :

Comme Microsoft le propose dans sa documentation, Azure propose d’installer un pilote adaptĂ© Ă  votre carte graphique au travers d’une extension Ă  votre machine virtuelle :

Les extensions de machines virtuelles Azure sont de petites applications qui permettent de configurer les machines virtuelles aprÚs leur déploiement.

Microsoft Learn

Dans notre cas, l’extension de pilote GPU NVIDIA pour Windows installera les pilotes GPU appropriĂ©s Ă  votre NVIDIA Tesla T4.

Pour installer cette extension, rendez-vous sur le menu suivant de votre machine virtuelle, puis cliquez sur Ajouter :

Choisissez dans la liste le pilote GPU dédié aux cartes graphiques NVIDIA :

Lancez la validation Azure :

Une fois la validation Azure rĂ©ussie, lancez l’installation de l’extension :

Attendez environ 1 minute :

Une fois le déploiement terminé, cliquez-ici :

Constatez le bon provisionnement de votre extension GPU NVIDIA :

Retrouvez cette mĂȘme information sur la page de votre machine virtuelle Azure :

Retournez sur le Gestionnaire des périphériques Windows afin de constater le changement :

Notez malgré tout la date assez ancienne du pilote de la carte graphique NVIDIA :

Ouvrez Ă©galement le Gestionnaire des tĂąches Windows afin de constater l’absence de mĂ©triques dĂ©diĂ©s au GPU :

Il semble assez Ă©vident que l’extension disponible sur Azure n’est pas des plus Ă  jour pour poursuivre, et risque peut-ĂȘtre mĂȘme de dĂ©grader les performances lors des tests.

Aussi je vous propose de lire la page suivante de la documentation Microsoft et concernant l’installation des pilotes sur les machines virtuelles graphiques hĂ©bergĂ©es sur Azure :

Sur cette page, il en ressort que la carte graphique Standard NC4as T4 v3 supporte elle-aussi le pilote GRID en version 16.1, compatible Windows 11 et facilement téléchargeable par ce lien.

Une fois tĂ©lĂ©chargĂ© sur votre VM GPU, ouvrez l’installeur du pilote GRID :

Confirmez le dossier de décompression au niveau local :

Attendez environ 30 secondes que la décompression se termine :

L’installation du Pilote GRID dĂ©marre alors automatiquement :

AprÚs une rapide vérification systÚme, cliquez sur Accepter et Continuer :

Cliquez sur Suivant :

Constatez la suppression des pilotes NVIDIA apportĂ©e par l’extension de machine virtuelle :

Attendez environ 2 minutes que l’installation se termine :

Une fois l’installation terminĂ©e avec succĂšs, cliquez sur Fermer :

Rouvrez le Gestionnaire des tñches Windows afin de constater l’apparition d’une section GPU :

Rouvrez le Gestionnaire des périphériques Windows afin de constater le changement de la date du pilote de la carte graphique NVIDIA Tesla T4 :

L’utilitaire nvidia-smi nous confirme les mĂȘmes informations :

La premiĂšre partie de la configuration GPU est enfin terminĂ©e. D’autres optimisations dĂ©jĂ  rappelĂ©es sur cette page Microsoft doivent Ă©galement ĂȘtre mise en place pour une bonne prise en charge de la session de bureau Ă  distance.

Etape IV – Installation d’applications de test :

Afin d’effectuer quelques tests graphiques, je vous propose d’installer 2 applications sur votre image AVD :

  • AutoCAD : logiciel de conception assistĂ©e par ordinateur en 2D et 3D payant, mais disponible en version d’essai juste ici. La crĂ©ation d’un compte est nĂ©cessaire chez AutoDesk pour obtenir cette version d’essai.
  • FurMark : logiciel de stress-test lĂ©ger mais trĂšs intensif pour les cartes graphiques et les GPU sur la plate-forme Windows.

Installation d’AutoCAD :

Une fois sur la page web des essais, cliquez-ici pour dĂ©finir une utilisation personnelle d’AutoCAD, puis cliquez sur Suivant :

Choisissez la version d’AutoCAD souhaitĂ©e, puis cliquez sur Suivant :

Ouvrez l’installateur web tĂ©lĂ©chargĂ© par le ce lien :

Attendez environ 30 secondes que la décompression se termine :

L’installation d’AutoCAD s’ouvre alors :

DĂ©finissez le dossier d’installation d’AutoCAD, puis cliquez sur Installation :

Attendez environ 10 minutes le temps qu’AutoCAD s’installe sur votre machine virtuelle :

Une fois l’installation correctement terminĂ©e, cliquez-ici pour fermer le programme :

Installation de FurMark :

Continuer avec l’installation de FurMark, disponible sur cette page :

Cliquez-ici pour lancer l’installation de FurMark :

Une fois l’installation terminĂ©e, dĂ©cochez les cases, puis cliquez sur Terminer :

Notre image AVD est maintenant terminĂ©e. Il ne nous reste plus qu’à GĂ©nĂ©raliser notre machine virtuelle afin de pouvoir l’importer dans Azure Virtual Desktop.

Etape V – PrĂ©paration du modĂšle AVD :

Pour cela, lancez la commande Sysprep :

Ouvrez le programme Sysprep :

Configurez-le comme ceci, puis cliquez sur OK :

Attendez que Sysprep commence le travail de nettoyage :

Constatez la fermeture de la session de bureau Ă  distance ouverte via Azure Bastion, puis cliquez sur Fermer :

Une fois la machine virtuelle en statut ArrĂȘtĂ©e, cliquer sur ArrĂȘter afin d’en changer le statut en ArrĂȘtĂ©e (dĂ©sallouĂ©e) :

Confirmez votre action en cliquant sur Oui :

Attendez que le traitement d’arrĂȘt complet se termine pour que le statut de la VM GPU change :

Cliquez sur Capturer pour créer une image de votre machine virtuelle modÚle :

Configurez les options de capture comme ceci :

DĂ©finissez toutes les informations relatives Ă  la version de votre image juste ici, puis lancez la validation Azure :

Une fois la validation Azure rĂ©ussie, lancez la crĂ©ation d’image de la VM :

Attendez environ 10 minutes que le traitement se termine :

Notre image Windows 11 customisĂ©e est enfin prĂȘte :

Etape VI – DĂ©ploiement de l’environnement AVD :

Continuez avec le dĂ©ploiement de l’environnement Azure Virtual Desktop en utilisant lĂ  encore la barre de recherche du portail Azure :

Cliquez-ici pour commencer la crĂ©ation du pool d’hĂŽtes Azure Virtual Desktop :

DĂ©finissez les options de base de votre environnement AVD, puis cliquez sur Suivant :

Ajoutez une VM GPU AVD, puis choisissez dans la liste des OS l’image crĂ©Ă©e prĂ©cĂ©demment :

RĂ©utilisez la mĂȘme taille de VM GPU que celle prĂ©cĂ©demment utilisĂ©e :

Joignez votre VM GPU AVD Ă  Entra ID et Ă  Intune, puis cliquez sur Suivant :

Créez un espace de travail AVD, puis lancez la validation Azure :

Une fois la validation Azure rĂ©ussie, lancez la crĂ©ation des ressources puis attendez environ 10 minutes :

Une fois le dĂ©ploiement d’Azure Virtual Desktop entiĂšrement terminĂ©, cliquez-ici pour continuer sa configuration :

Activez l’option de SSO dans les propriĂ©tĂ©s RDP, puis cliquez sur Sauvegarder :

Afin d’économiser sur la consommation Azure, ajoutez un scaling plan qui pilotera la VM GPU AVD selon les besoins de connexion :

Donnez-lui un nom, placez-le dans la mĂȘme rĂ©gion Azure que votre pool d’hĂŽtes AVD, puis cliquez sur Suivant :

Ajoutez un ou plusieurs plannings selon vos besoins, sachant qu’une journĂ©e de la semaine ne peut ĂȘtre prĂ©sent que dans un seul planning

SĂ©lectionnez les jours de la semaine correspondant Ă  vos besoins, puis cliquez sur Suivant :

L’onglet suivant reprend le fuseau horaire du premier onglet et vous demande de renseigner les champs ci-dessous, puis de cliquer sur Suivant :

Renseignez les mĂȘmes options que pour la phase prĂ©cĂ©dente, puis cliquez sur Suivant :

Renseignez les mĂȘmes options que pour la phase prĂ©cĂ©dente, puis cliquez sur Suivant :

Renseignez les mĂȘmes options que pour la phase prĂ©cĂ©dente, puis cliquez sur Ajouter :

Ajoutez si-besoin un second calendrier pour les autres jours, puis cliquez sur Suivant :

Rattachez votre pool d’hîtes à la configuration en n’oubliant pas de cocher la case pour l’activer, puis cliquez ici pour lancer la validation Azure :

Une fois la validation Azure réussie, cliquez sur Créer pour valider la configuration :

Rajoutez les rĂŽles RBAC suivants au niveau du groupe de ressources Azure contenant votre environnement AVD :

  • Permettre Ă  Azure Virtual Desktop de pouvoir allumer et Ă©teindre les VMs AVD
  • Permettre Ă  notre utilisateur de test de voir l’espace de travail AVD
  • Permettre Ă  notre utilisateur de test d’ouvrir une session Windows AVD

La suite de la configuration GPU peut s’effectuer via une configuration poussĂ©e par Intune.

Etape VII – Post-configuration GPU 2/2 :

D’autres configurations sont nĂ©cessaires sur les VM GPU AVD pour que la session Windows ouverte via le protocole RDP tire pleinement partie des performances GPU.

Dans le cas d’un Azure Virtual Desktop sous Windows 11, nous devons nous intĂ©resser aux 2 configurations suivantes :

Nous pouvons trĂšs facilement terminer cette configuration via la mise en place d’un profil de configuration Intune. Pour cela, nous avons besoin de crĂ©er un groupe Entra ID pour affecter le profil de configuration GPU Ă  notre VM AVD GPU :

Continuons sur le portail Intune pour créer notre profil de configuration Windows, cliquez sur Créer une nouvelle Police :

Continuez comme ceci :

Nommez votre profil de configuration GPU, puis cliquez sur Suivant :

Cliquez sur Ajouter un paramĂštre :

Rechercher les 2 paramĂštres GPU suivants :

Ajoutez Ă©galement ce troisiĂšme paramĂštre GPU suivant :

Activez ces 3 paramĂštres comme ceci :

Cliquez sur Suivant :

Ajoutez le groupe Entra ID contenant votre VM GPU AVD, puis cliquez sur Suivant :

Terminez la création de votre police de configuration.

Retournez sur la VM GPU AVD, puis lancez une synchronisation forcée pour accélérer le déploiement du profil de configuration :

Environ 15 à 30 minutes plus tard, la police de configuration GPU créée sur Intune apparaßt bien comme installée sur la VM GPU AVD :

La configuration GPU est maintenant en place, il ne nous reste maintenant qu’à tout vĂ©rifier sur la VM GPU AVD grĂące Ă  notre utilisateur de test.

Etape VIII – VĂ©rification de la configuration GPU :

Si besoin, téléchargez le client Remote Desktop depuis cette page officielle Microsoft.

Ouvrez l’application avec votre utilisateur de test AVD, puis lancez l’application de bureau à distance :

Authentifiez-vous encore une fois avec un compte AVD de test :

Acceptez la demande d’autorisation pour autoriser les connexion RDP vers la VM GPU AVD :

Microsoft nous explique ici comment vérifier les configurations appliquées depuis Intune :

Pour cela, ouvrez le Journal des évÚnements présent sous Windows :

Recherchez le journal suivant :

  • Journaux des applications et services
    • Microsoft
      • Windows
        • RemoteDesktopServices-RdpCoreCDV
          • OpĂ©rationnel

Constatez la bonne présence des 2 ID suivants :

  • 162 : L’encodeur matĂ©riel AVC est bien activĂ©
  • 170 : La session de bureau Ă  distance utilise bien l’encodage vidĂ©o plein Ă©cran (AVC 444)

La fonctionnalitĂ© UDP a Ă©tĂ© dĂ©ployĂ©e sur l’ensemble des environnements AVD (L’impact du protocole dans un environnement dĂ©diĂ© au bureau Ă  distance est majeur) :

Tout semble maintenant en ordre, il nous reste qu’à tester les performances GPU via diffĂ©rents outils, comme par exemple :

  • AutoCAD
  • FurMark
  • Clipchamp

Etape IX – Test AutoCAD :

Ayant installĂ© AutoCAD dans l’image AVD, il ne nous reste plus qu’à trouver des exemples de fichiers. Plusieurs sites en proposent, dont le site AutoDesk :

Une fois tĂ©lĂ©chargĂ©, l’ouverture du fichier se fait assez facilement dans AutoCAD :

La navigation 3D se fait de maniĂšre trĂšs fluide sans aucune saccade gĂȘnante :

Continuons les tests avec FurMark.

Etape X – Test FurMark :

FurMark propose toutes sortes de benchmarks. Un test de 10 minutes montre bien la montée en charge et en température de la carte NVIDIA Tesla T4 :

Finissons les tests applicatifs avec Clipchamp.

Etape XI – Test Clipchamp :

En juillet 2023, Microsoft avait Ă©tĂ© annoncĂ© via un post sur leur blog l’intĂ©gration de Clipchamp dans la suite Microsoft 365. Voici une courte vidĂ©o d’introduction :

Vous trouverez Clipchamp depuis la page d’accueil des applications 365 :

Je me suis amusĂ© Ă  construire une petite vidĂ©o et j’ai jouĂ© avec quelques fonctionnalitĂ©s trĂšs sympa, sans avoir ressenti de latence durant les manipulations :

D’autres tests seront Ă  prĂ©voir selon les applications voulues.

Etape XII – ArrĂȘt automatique de la VM GPU AVD :

Depuis juillet 2023, Azure Virtual Desktop continue d’évoluer et propose l’arrĂȘt automatique des VMs pour les environnements individuels. Un article avait dĂ©jĂ  Ă©tĂ© Ă©crit sur le sujet juste ici.

Cette approche est particuliÚrement intéressante pour les machine virtuelles avec GPU quand les besoins sont ponctuels et limités.

La mise Ă  l’échelle automatique pour notre pool d’hĂŽtes AVD Ă©tant dĂ©jĂ  configurĂ©, il nous reste qu’à fermer la session de notre utilisateur de test AVD :

Environ 15 minutes plus tard, le statut de la VM AVD GPU change bien en désalloué, ce qui confirme bien le fonctionnement complet du Start and Stop dans notre environnement de test :

Comme le journal d’activitĂ©s Windows le montre, l’arrĂȘt de la machine virtuel est bien provoquĂ© par Azure Virtual Desktop :

Conclusion :

Je souhaite commencer ma conclusion par la satisfaction personnelle d’avoir Ă©crit cet article, qui me trottait dans la tĂȘte depuis plusieurs mois dĂ©jĂ  đŸ€Ł. Je suis Ă©galement trĂšs content des performances obtenues et du bon ressentit utilisateur quand il s’agit de besoins graphiques exigeants.

Nul doute que cela ne remplacera pas Ă  100% les machines graphiques locales, mais la disponibilitĂ©, la flexibilitĂ© et la sĂ©curitĂ© du Cloud sont de vrais arguments au moment du remplacement d’un parc de machines avec GPU.

Un commentaire sur “Azure Virtual Desktop + GPU = đŸŽïžâ€

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *