Jump to content
u34097

Station de travail multi-usage : GPU passthrough, configuration, ... ?

Recommended Posts

Bonjour !

je suis tombé sur quelques articles mentionnant la possibilité de jouer tout en étant étant virtualisé via passthrough GPU, j'avais déjà entendu cette idée il y a plusieurs années, et maintenant que j'ai la possibilité d'avoir un PC fixe, l'idée m'intéresse.

Mon intérêt est d'avoir une machine polyvalente, gaming & bidouille (compilation, lab, ...), et relativement puissante, tout en conservant les environnements séparés. Mais je me pose pas mal de questions, et je suis preneur de retours de manière générale.

Comment utilisez-vous ce genre de setup / quel est l'utilisation la plus courante ? Une VM avec la plupart de l'accès au matériel (GPU, USB, ..) ?

Pour l'accès aux ports USB, faites-vous aussi du passthrough sur le contrôleur / un des contrôleur ?

Dans le cas de la VM de jeux, en dehors de Nvidia qui fait un pseudo blocage inutile sur ses drivers, cela peut-il poser des problèmes ? Je pense particulièrement aux solutions anti-triche, car la solution perdrait une grande partie de son intérêt ..

Les pilotes semblent jouer un rôle assez important sur la gestion du CPU (https://www.inpact-hardware.com/article/1429/ryzen-3e-generation-pilotes-et-ryzen-master-mis-a-jour-agesa-1-0-0-3abb-arrive), cette gestion n'est-elle pas perdue/moindre/limitée avec un hyperviseur "naif" / sur lequel les pilotes ne sont pas installable, ou cela peut-il poser des problèmes ?

Je me pose aussi la question de l'accès aux VMs : la VM jeux serait accessible directement sur la carte graphique (+usb), mais quid des autres ? Je pensais à RDP (probablement pas d'environnement graphique en dehors de Windows), mais je ne suis pas certain que ce soit le plus pratique à long terme ? Sur /r/vfio j'ai rapidement vu parler de LookingGlass mais je n'ai pas creusé la question (et ça semble KVM only), ainsi que des solution à base de DDC pour switcher d'input sur l'écran (mais ça suppose 1 sortie graphique par VM). D'ailleurs, du GPU passthrough avec 2 carte graphiques (pour 2 VMs), ça se passe bien ?
Je suppose que dans tous les cas c'est bien la VM jeux qui doit avoir la main sur la CG ?

J'ai cru comprendre qu'il y a des articles à venir sur ce sujet chez NextInpact (Master Race & présentation des hyperviseurs ?), mais je n'ai pas trouvé les sujets, parce que le magazine temps du temps ou je les ai simplement loupé ? 🙂

Je pense faire un setup full AMD (ça changera de mon Asus N56VZ en Intel i7 & Nvidia GT650M ^^), côté hyperviseurs j'ai pu constater en jouant avec VMware Player 

  • oVirt : clairement orienté datacenters, la VM de gestion mange 1Go de RAM (et ça prend un peu de temps de s'y retrouver dans la documentation pour comprendre les modes d'installation ; d'ailleurs : RHVH = oVirt Node = Base + Cockpit avec dashboard ; RHVM = oVirt Engine = Base + engine-setup ; Manager = bare-metal (RHVM) ou dans une VM flottante sur Nodes (oVirt), et/ou une vm préconfigurée (applianceflow))
  • Nuttanix : clairement anti-particuliers, il faut passer par une adresse email jetable non-blacklistée si on ne veut pas donner d'email "propre", et à besoin de communiquer avec leurs serveurs ..
  • XCP-ng : la dom0 semble gourmande (en RAM et en disque), il n'y a qu'un client lourd Windows only, la webui XOA est payante
  • Proxmox : bien pratique pour faire des labs & gérer des serveurs d'importance moyenne, mais je ne sais pas si je m'y oserais pour une station de travail ; et pas de SecureBoot
  • Hyper-V + Windows Admin Center (installation du MSI sur Hyper-V server) : il y a du potentiel, mais WAC n'est pas encore bien sec (très lent, bugs) .. Et la aussi le système mange 1Go RAM ..
  • ESXi : je n'ai pas regardé dans le détail, mais c'est la solution vers laquelle je pense m'orienter (stabilité, éprouvé, l'interface de gestion ne semble pas trop mal foutue)
  • KVM-QEMU & libvirt homemade (via CentOS (8?) + repo SIG VIRT pour avoir les paquets RHV pas trop dépassés) ; je le fais déjà pour mon NAS mais ça demande de passer un peu de temps dessus quand même / de pouvoir s'accorder un downtime  😕 ; et je ne sais pas si ce type de config (passthrough) s'y prête bien / sans trop avoir à passer de temps dessus (mais ça semble courant sur /r/VFIO) ?

C'est probablement sur une des 3 ou 4 dernières solutions que je partirai (et plus probablement ESXi).

Au passage, il me faudra aussi un écran, je ne suis pas encore bien fixé et je n'ai pas encore au l'occasion de voir à quoi les nouveaux modèles ressemblent (incurvé, 4k, ..), savez-vous si il est possible d'apercevoir / lurker ce genre d'écrans sur Rennes, et où ?

Sinon côté matériel, en dehors de Nvidia, le seul point un peu tricky semble être l'IOMMU (peu documenté ..), ou il y en a d'autres ?

Bon voilà, j'ai mis 3 plombes à écrire ce message, je pense avoir à peu près fait le tour pour une première vague de questions, ça en fait pas mal mais comme ça touche au hardware, c'est beaucoup moins facile à tester quand on l'a pas eu dans les mains ^^
J'espère ne pas vous avoir assommé de questions quand même, et trouver des personne qui pourront / voudront bien partager leur expérience à ce sujet (en positif comme en négatif, et même si c'est pour me dire que mon idée est foireuse, tant que c'est argumenté 😉).

Alex :kimouss:

Edited by u34097
Ajout liens

Share this post


Link to post
Share on other sites

Ne confond tu pas "ressource GPU accessible dans une VM" (pour du compute, ce que David va surement traiter dans un article) VS isoler son affichage dans un environnement virtualisé.
Pour ce dernier je ne suis pas au courant de solution efficientes.
A ce stade là ce serait demander à ta VM de faire du streaming (GeForce now?) pour récupérer le flux sur la même machine, une belle perte de performance.

Par contre l'inverse: avoir un pc Gaming , et derrière des VM pour gérer ses environnements de dev ca fonctionne.

 

:cartonjaune: avec 8 posts et une inscription en 2004, il est temps de s'ajouter un avatar 🙂

Edited by Sheepux
  • Haha 1

Share this post


Link to post
Share on other sites
On 10/09/2019 at 13:22, Sheepux a écrit :

Ne confond tu pas "ressource GPU accessible dans une VM" (pour du compute, ce que David va surement traiter dans un article) VS isoler son affichage dans un environnement virtualisé.
Pour ce dernier je ne suis pas au courant de solution efficientes.
A ce stade là ce serait demander à ta VM de faire du streaming (GeForce now?) pour récupérer le flux sur la même machine, une belle perte de performance.

Par contre l'inverse: avoir un pc Gaming , et derrière des VM pour gérer ses environnements de dev ca fonctionne.

Je ne suis pas sur d'avoir compris "isoler son affichage dans un environnement virtualisé", mais l'idée c'est bien d'avoir une VM "affichée", celle à qui est attribué le GPU et donc gaming, avec quelques VMs à côté.
Une de mes questions est justement de savoir comment il serait possible de rendre quasi-natif l'accès à ces autres VMs, en dehors d'utiliser RDP ("streamer" le bureau vers la VM principale) ; d'autant plus que les autres VMs n'auraient pas de vrai GPU, je me demande quelles seraient les perfs d'affichage (Aero, déplacement des fenêtres, ..) à travers RDP.

 

On 10/09/2019 at 13:22, Sheepux a écrit :

:cartonjaune: avec 8 posts et une inscription en 2004, il est temps de s'ajouter un avatar 🙂

Better ? ^^
A vrai dire j'en avais un avant, mais j'ai fait en sorte de me faire plus discret sur internet, parce que j'ai pas forcément fait attention plus jeune 🙂

Share this post


Link to post
Share on other sites

Tu peux toujours faire du gpu-passthrough via vt-d, mais du coup tu dédie ta carte grpahique à la VM.
Donc 1 écran branché à la VM et tu peux brancher un 2eme écran (pour le pc hote) sur la sortie graphique de la carte mère (gpu du processeur).

Pour ce qui est de RDP, c'est pas fait pour, il faudrait plutôt regarder du coté de GeForce experience pour le streaming … mais si c'est pour reprendre le flux sur ton propre pc… perte de performance.

Edited by Sheepux

Share this post


Link to post
Share on other sites
Il y a 47 minutes, u34097 a écrit :

Je ne suis pas sur d'avoir compris "isoler son affichage dans un environnement virtualisé", mais l'idée c'est bien d'avoir une VM "affichée", celle à qui est attribué le GPU et donc gaming, avec quelques VMs à côté.

Pour l'affichage, OK. Mais tu va devoir aussi affecter clavier, souris en direct à ta VM sur laquelle le GPU est? De même pour les clés USB si besoin...

Je crois que tu devrais plutôt installer ton PC avec le système de ton choix et de ce système lancer des VMs.

 

Le GPU passthrough est surtout pour bénéficier du GPU complet dans une VM: soit pour une affectation en multigpu, soit pour débloquer des fonctionnalités qui ne sont pas disponibles en partage GPU (comme par exemple le streaming). Mais ça reste pour un serveur "headless" (sans écran) de mon point de vue.

Par exemple, tu peux imaginer lancer steam en mode "serveur" sur une VM avec GPU passthrough et donc bénéficier des pilotes de ta CG. Sinon, tu dois utiliser les pilotes de la CG virtuelle, pas forcément au top et dépendant des pilotes que peut fournir ton hyperviseur/paravirtualiseur et tu es pénalisé.

Share this post


Link to post
Share on other sites

Vu ce que tu souhaites faire, tu aurais plus vite fait d'installer Windows 10 PRO, de jouer directement dessus, et d'avoir Hyper-V/VMWARE Workstation ou autre pour l'isolation des VM de dev/test etc.

 

Share this post


Link to post
Share on other sites

@CryoGen On est du même avis 

Citer

Par contre l'inverse: avoir un pc Gaming , et derrière des VM pour gérer ses environnements de dev ca fonctionne.

 

Edited by Sheepux

Share this post


Link to post
Share on other sites
Il y a 6 heures, Sheepux a écrit :

@Cyrogen On est du même avis 

+1. Et comme déjà dit plus haut, je ne suis même pas sûr qu'il soit possible de jouer sur le PC "hyperviseur" et passer d'une VM à l'autre simplement. Le clavier/souris, ils sont déjà capturés par l'hyperviseur et ne sont pas transmis automatiquement aux VM en dessous. Sauf à tout bidouiller...

Share this post


Link to post
Share on other sites
On 12/09/2019 at 22:00, Sheepux a écrit :

Pour ce qui est de RDP, c'est pas fait pour, il faudrait plutôt regarder du coté de GeForce experience pour le streaming … mais si c'est pour reprendre le flux sur ton propre pc… perte de performance.

Le RDP ne serait pas pour jouer, mais accéder aux autres VMs 😉

Il y a 5 heures, brice.wernet a écrit :

+1. Et comme déjà dit plus haut, je ne suis même pas sûr qu'il soit possible de jouer sur le PC "hyperviseur" et passer d'une VM à l'autre simplement. Le clavier/souris, ils sont déjà capturés par l'hyperviseur et ne sont pas transmis automatiquement aux VM en dessous. Sauf à tout bidouiller...

Non, clairement il n'y a qu'une VM qui accède au plus gros du matos, la VM principale, les autres il faut y accéder autrement, mais je me pose la question de la meilleur façon.

En fait, sauf si j'ai pas compris, c'est ce que semblent faire des personnes comme @David_L ou @Balooforever (cf. https://www.inpact-hardware.com/article/1408/linux-hyperviseurs-quelles-distributions-pour-ryzen-3eme-generation#comment/42584), et avant de me lancer je suis vraiment curieux de connaitre les petits détail pratiques, si ces personnes ou d'autres qui font déjà ça sont dans le coin ^^

Il y a 13 heures, CryoGen a écrit :

Vu ce que tu souhaites faire, tu aurais plus vite fait d'installer Windows 10 PRO, de jouer directement dessus, et d'avoir Hyper-V/VMWARE Workstation ou autre pour l'isolation des VM de dev/test etc.

J'avoue que je me pose la question, c'est aussi pour ça que j'aimerais les détails pratiques, mais c'est probablement plus facile de conserver des environnements détaillés quand tu sais que les autres systèmes sont toujours démarrés, et que tu peux redémarrer chaque système sans affecter les autres

Share this post


Link to post
Share on other sites
Il y a 15 heures, Sheepux a écrit :

#Docker 😛

:vomi1: (non, je suis pas un grand fan :DD)

Share this post


Link to post
Share on other sites
On 13/09/2019 at 22:39, u34097 a écrit :

Non, clairement il n'y a qu'une VM qui accède au plus gros du matos, la VM principale, les autres il faut y accéder autrement, mais je me pose la question de la meilleur façon.

En fait, sauf si j'ai pas compris, c'est ce que semblent faire des personnes comme @David_L ou @Balooforever (cf. https://www.inpact-hardware.com/article/1408/linux-hyperviseurs-quelles-distributions-pour-ryzen-3eme-generation#comment/42584), et avant de me lancer je suis vraiment curieux de connaitre les petits détail pratiques, si ces personnes ou d'autres qui font déjà ça sont dans le coin ^^

 

En fait de ce que je lis, tu dois assigner le matos à ta VM gaming.

Ensuite tu accèdes aux autres VM via cette VM (ou via une autre machine).

Tu dois pouvoir trouver des tuto pour unRAID assez facilement, en tout cas pas mal de monde en parle sur le net, genre ici :

Y en a aussi qui le font avec Proxmox

 

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×
×
  • Create New...