cancel
Showing results for 
Search instead for 
Did you mean: 

General Discussions

Maxart95
Journeyman III

ThreadRipper 7960X Hyper-V et DDA pour GPU

Bonjour à tous,

Je viens vers vous pour m'aider sur un problème Hyper-V et DDA d'un carte graphique.

Voici les configurations. Les deux premières sont des configurations de tests sur lesquelles je n'ai aucun problème, la troisième configuration est celle que je dois mettre en prod et qui malheureusement a le problème.

Config 1 :
- ASUS Prime Z590M-Plus
- Intel Core i9-10900
- 64 Go DDR4

Config 2 :
- GIGABYTE GA-A320M-S2H
- AMD Ryzen 5 2600X
- 64 Go DDR4

Config 3 :
- GIGABYTE TRX50 AERO D
- AMD ThreadRipper 7960X
- 192 Go DDR5 ECC

Carte graphique :
- GIGABYTE WindForce V2 24G (RTX 4090)

Les tests ont été fait avec Windows Serveur 2019 et 2022 sur toutes les configs et Windows 10, Windows Server 2019 et 2022 dans les VMs.
Les drivers NVIDIA testés sont :
- 552.22
- 551.61
- 531.
- 528.

Sur toutes les configs, les bios sont les plus récents, les drivers sont les derniers en date (chipset, ...)

Dans tous les cas, la virtualisation Intel-Vt ou AMD SVM et IOMMU sont bien activés dans les bios.

L'idée est de rediriger les ligne PCIe de la carte graphique dans une machine virtuelle.

Cela fonctionne parfaitement bien avec les config 1 et 2, aucun problème.
Mais le problème est que cela ne fonctionne pas, ou presque pas avec la config 3.
Je m'explique, pas de problème pour faire la VM et pour rediriger les lignes PCIe vers la VM. La VM voie la carte graphique dans le gestionnaire de périphérique en 'Carte vidéo de base Microsoft' (cf capture 1), jusque là c'est normal.
Mais dès que j'installe les drivers de la carte graphique dans la VM, alors la carte graphique disparait (cf capture 2) ! Si j'affiche les périphérique cachés dans le gestionnaire de périphérique, la carte graphique est préseent en mode fantome (périphérique déconnecté) (cf capture 3). Evidemment sur les config 1 et 2 tout va bien ici.
Les propriétés de la carte graphique fantome sont visible sur la capture 4.
La capture 5 montre montre le résultat de la cmdlet powershell Get-PnpDevice.

Je ne comprends pas pourquoi cela ne fonctionne pas normalement sur la config 3, qui est malheureusement le serveur final que je dois mettre en place... grrrr
Je reprécise que cela fonctionne parfaitement bien sur les VMs des config 1 et 2 (cf capture 6). En capture 7 vous trouverez les cmdlet powershell utilisées pour la redirection des lignes PCIe.

Quelqu'un a t'il déjà rencontrer ce type de problème ou quelqu'un aurait-il une solution pour moi, s'il vous plaît ?

Je reste disponible pour tout complément d'information dont vous pourriez avoir besoin pour m'aider à résoudre mon problème.

Merci beaucoup du temps que vous avez passé à lire.


Cordialement,
Mx.

 

Capture1.PNGCapture2.PNGCapture3.PNGCapture4.PNGCapture5.PNGCapture6.PNGCapture7.PNG

0 Likes
1 Solution
Maxart95
Journeyman III

Bonjour à vous tous,

Après beaucoup d'heures passées à chercher, j'ai finalement trouvé ma solution ce matin... à 4 heures du mat...

Comme expliqué dans mon post de question, cela fonctionne parfaitement sur deux configurations mais pas sur la troisième qui est pourtant la finale.
Pour ces trois configurations, tout a été testé : version d'OS hôte et invité, drivers, etc.

La solution à ce problème est en fait un petit problème de plage mémoire allouée à la VM pour la gestion du DDA.

Dans le script Powershell il faut modifier la valeur 'HighMemoryMappedIoSpace'. En effet dans la plus part de tutoriaux que l'on trouve sur internet, cette valeur est fixée à 33280Mb. Et j'avoue que cela fonctionne parfaitement bien sur les deux configuration de test. Mais pas sur la configuration 3 qui est le serveur final.

Je ne sais pas pour la grande partie de tutos sur internet utilise cette valeur, mais en vrai elle ne rime à rien en fait.
En plaçant cette valeur à 33720Mb (soit un vrai 32Gb) cela fonctionne parfaitement sur la configuration 3 (Aero D TRX50 et AMD ThreadRipper 7960X).
De plus, si j'augmente encore cette valeur j'obtiens de meilleur performance. Alors dans mon cas, j'ai fixé cette valeur à 40Gb (soit 40960Mb mais on peut l'écrire en Gb sans problème).

Voilà pour la solution, il fallait augmenter la valeur 'HighMemoryMappedIoSpace'.

Merci à tous ceux qui pris le temps de lire et de réfléchir.

Cordialement,
Mx.

 

View solution in original post

0 Likes
1 Reply
Maxart95
Journeyman III

Bonjour à vous tous,

Après beaucoup d'heures passées à chercher, j'ai finalement trouvé ma solution ce matin... à 4 heures du mat...

Comme expliqué dans mon post de question, cela fonctionne parfaitement sur deux configurations mais pas sur la troisième qui est pourtant la finale.
Pour ces trois configurations, tout a été testé : version d'OS hôte et invité, drivers, etc.

La solution à ce problème est en fait un petit problème de plage mémoire allouée à la VM pour la gestion du DDA.

Dans le script Powershell il faut modifier la valeur 'HighMemoryMappedIoSpace'. En effet dans la plus part de tutoriaux que l'on trouve sur internet, cette valeur est fixée à 33280Mb. Et j'avoue que cela fonctionne parfaitement bien sur les deux configuration de test. Mais pas sur la configuration 3 qui est le serveur final.

Je ne sais pas pour la grande partie de tutos sur internet utilise cette valeur, mais en vrai elle ne rime à rien en fait.
En plaçant cette valeur à 33720Mb (soit un vrai 32Gb) cela fonctionne parfaitement sur la configuration 3 (Aero D TRX50 et AMD ThreadRipper 7960X).
De plus, si j'augmente encore cette valeur j'obtiens de meilleur performance. Alors dans mon cas, j'ai fixé cette valeur à 40Gb (soit 40960Mb mais on peut l'écrire en Gb sans problème).

Voilà pour la solution, il fallait augmenter la valeur 'HighMemoryMappedIoSpace'.

Merci à tous ceux qui pris le temps de lire et de réfléchir.

Cordialement,
Mx.

 

0 Likes