Journal 3D pour VM

Posté par . Licence CC by-sa
10
8
déc.
2014

Voila maintenant un peu plus d'un an que je me pose les questions suivantes :

  • Comment peut on "facilement" passer les morceaux de CPU voire des architectures complètes (-cpu host de qemu) à des machines virtuelles ? et surtout pourquoi ne peut on pas faire de même avec les GPU ?

  • Pourquoi KVM (qemu) ne dispose t il pas d'une émulation/virtualisation d'une carte 3D ?

En effet actuellement il existe pour des sommes très modiques (≈40-50€) des cartes avec 2Go de mémoire et un nombre impressionnant de processeurs de flux. En gros des puissances qui ferait pâlir les monstres d'il y a quelques années.

Actuellement il existe dans les CPU une technologie qui permet de passer à une VM un périphérique matériel via les VFIO Virtual Function I/O et ça fonctionne plutôt bien.

En ce qui concerne l'accélération 3D on en avait déjà parlé ici.

Maintenant on trouve de plus en plus d'informations pour mettre en œuvre cette technique (géniale d'ailleurs) :
http://www.pugetsystems.com/labs/articles/Multiheaded-NVIDIA-Gaming-using-Ubuntu-14-04-KVM-585/
https://bbs.archlinux.org/viewtopic.php?id=162768
http://www.linux-kvm.org/page/How_to_assign_devices_with_VT-d_in_KVM

Par contre le "problème" majeur de cette technique c'est qu'il faut dédier une carte spécialement pour la ou les machines virtuelles que l'on veut lancer. De plus cette carte ne doit pas être chargée par le noyau au démarrage, elle est donc inutilisable en dehors des VM.

Bon, je me mets en situation :
Si je suis mon raisonnement précédent, une carte à 30€ maintenant équivaut en puissance à une carte à 600€ il y a 5 ans, donc j'en achète une, je la réserve à une VM XP et une seven pour pouvoir jouer à mes vieux (mais néanmoins très bon) jeux et tout va bien.
Et puis un jour (plusieurs années après) crack!! cette carte grille et là un gros problème se pose, si je rachète une carte neuve il n'existera sûrement pas les drivers pour seven et encore moins XP, du coup mes deux VM se retrouveront inutilisables.

Cette perspective ne me plaisant pas, l'idée d'une architecture virtuelle et accélérée matériellement (par n'importe quel driver) qui ne bougera pas et suffira largement pour faire tourner tous les jeux et logiciels 3D ayant existé sur les OS anciens vient naturellement à l'esprit. Et là c'est le drame ça n'existe pas pour KVM et n'est pas très au point pour VirtualBox.

Donc je me dis, je vais poser la question sur LinuxFR, mais pour éviter de me prendre un ATFG (Ask The Fucking Google, évolution du RTFM) j'interroge avant tout mon moteur de recherche favori, et là je tombe sur Virgil 3d project un projet de recherche initié par Dave Airlie dont le but est justement de créer un GPU 3D virtuel, actuellement c'est encore expérimental (peut être le restera t il toujours) mais personnellement j'espère que non et je croise les orteils pour que Red Hat boost un peu le projet qui comblera (selon moi) un manque important dans Qemu-KVM.

Une vidéo du projet à la Linux conf 2014

  • # Red Hat

    Posté par . Évalué à -10.

    et je croise les orteils pour que Red Hat boost un peu le projet

    Ne fais pas ça ! Ils vont mettre Lennart Poettering sur le coup, et d'ici deux ans tu auras, selon les points de vue, un bloatware innommable mais dont aucune VM ne se passe plus, ou une innovation géniale dont on aurait tort de se priver. Après quelques mois à se lancer des invectives, un petit groupe de devs déciderait de forker et on se retrouverait avec Virtuanbox. Les distributions resteraient partagées sur la pertinence de proposer Virtuanbox, Virtualbox, ou les deux. Fedora intégrerait virtuanbox sans poser de questions, les débats sur la mailing-list d'Archlinux seraient interminables mais on passerait intégalement à virtuanbox par manque de mainteneurs pour l'alternative, et Gentoo proposerait et documenterait les deux. Les BSDistes, eux, se plaindraient qu'on ne pensent jamais à eux. Encore un peu plus tard, les principaux gestionnaires de bureau auraient tous Virtuanbox en dépendance, encore qu'on n'en comprenne pas très bien les raisons techniques.

    Ça, ce sont les sources. Le mouton que tu veux est dedans.

    • [^] # Re: Red Hat

      Posté par . Évalué à 3.

      RedHat fait partie des plus gros contributeurs de Linux-KVM…

  • # Cartes videos à 50€

    Posté par . Évalué à 10.

    Pour info, un test récent de l'excellent CanardPC Hardware démonte l'ensemble des cartes de cet ordre de prix : les CPUs moderners, qu'ils soient Intel ou AMD offrent la même chose gratuitement. J'ai pas épluché l'article, mais j'ai tendance à leur faire confiance sur ce point. Pour eux les premiers gains en perfo arrivent vers 70-80€ mini.

    Voilà, c'était mon commentaire non constructif et hors sujet du jour, vous pouvez reprendre une vide normale.

    • [^] # Re: Cartes videos à 50€

      Posté par . Évalué à 4.

      c'était mon commentaire non constructif et hors sujet du jour,

      Un ou deux petits liens peut être ?
      Et puis c'est pas si hors sujet que ça.

      kentoc'h mervel eget bezan saotred

    • [^] # Re: Cartes videos à 50€

      Posté par . Évalué à 6. Dernière modification le 08/12/14 à 14:58.

      Si j'ai bien compris ce qu'il dit, c'est bien le but : il garde le GPU intégré de son CPU pour son host linux et il achète une CG du même ordre de puissance à prix modique pour la dédier à sa VM Windows pour ses jeux.

    • [^] # Re: Cartes videos à 50€

      Posté par . Évalué à 2.

      J'ai acheté récemment une carte NVidia de base à 50€, mais ce n'était pas pour la partie graphique (j'utilise toujours mon GPU intégré Intel pour ça) : c'est pour faire du CUDA. On pourrait avoir envie de faire du CUDA depuis une VM, mais pour ça il faut l'accès aux fonctions exposées par le pilote NVidia.

  • # Ça avance

    Posté par (page perso) . Évalué à 2.

    Et ça avance tellement vite, que quand ta carte grillera tu utiliseras un GPU KVMGT pour tes jeux…

    Blague à part, vu la quantité de cartes d'occasion, c'est pas un problème les vieux pilotes…

    ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

  • # État de l’art

    Posté par . Évalué à 4.

    Tu l’as bien compris, l’état de l’art en open source c’est bien virgil3d. Pour voir ce qui se fait en proprio, il faut regarder du côté de VMWare Fusion (https://labs.vmware.com/academic/publications/gpu-virtualization pour le papier expliquant l’archi) ou de Parallels.

  • # KVMGT

    Posté par . Évalué à 3.

    Ça répond pas vraiment à ta question mais c est voisin et ça m'a l'air prometteur…
    http://www.phoronix.com/scan.php?page=news_item&px=MTg1MzQ

    Bon par contre, c est dédié Intel…

    Et cela concerne la CG de l'hôte qui est "partagée" avec les VM.
    D'après ce que je comprends (très loin d'être un spécialiste), il n y a pas de connecteur dédié et je ne vois pas comment bénéficier de l'accélération à part à travers une session spice (si c'est possible).

  • # CPU / GPU

    Posté par . Évalué à 3.

    Comment peut on "facilement" passer les morceaux de CPU voire des architectures complètes (-cpu host de qemu) à des machines virtuelles ? et surtout pourquoi ne peut on pas faire de même avec les GPU ?

    Parce que ce n'est pas KVM qui récupère le CPU, c'est le CPU lui-même qui gère la virtualisation avec les instructions VT-x (chez Intel) ou AMD-v (chez AMD). Donc c'est une question de hardware.

    Pourquoi KVM (qemu) ne dispose t il pas d'une émulation/virtualisation d'une carte 3D ?

    Bonne question, VMware a ça.
    Peut-être que les clients de RedHat n'en ont pas la nécessité.
    Sinon il y a le VGA passthrough avec VT-d, qui est exactement ce que tu décris plus bas.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.