Bonjour,
Est-il possible d’émuler un GPU dans un serveur virtuel sachant que le Hard est composé de CPU ? C'est ce que me propose un consultant, je suis un peu sceptique.
Merci d'avance pour vos éclaircissements.
Version imprimable
Bonjour,
Est-il possible d’émuler un GPU dans un serveur virtuel sachant que le Hard est composé de CPU ? C'est ce que me propose un consultant, je suis un peu sceptique.
Merci d'avance pour vos éclaircissements.
Bonjour
Faire travailler un processeur central en processeur graphique c'est possible, mais je n'en vois pas l'intérêt.
Par exemple lorsqu'on avait ajouté les instructions MMX au processeur central, on avait augmenté sa capacité à traiter des images.
En fait c'est pour un serveur virtuel destiné à du machine learning. Le serveur physique hôte à des CPU et le consultant me propose une solution pour emuler des GPU sur le serveur virtuel.
Je pensais que la performance du GPU relevait de sa configuration matériel. Je n'arrive pas percevoir comment il est possible d'emuler des GPU sur le serveur virtuel à partir de CPU sur le serveur physique hôte.
Je pense que l'émulation consiste à transformer des instructions graphiques en instructions interprétables par le processeur central.
C'était facile à faire en assembleur en utilisant les interruptions.
Voici la différence entre un CPU et un GPU les deux utilisent des instructions classiques sur des ALU mais ne les traitent pas de la même façon.
Tu as des fonctions d'acceleration 3d mais ne t'attend pas à des miracles. Regardes le lien pour VirtualBox
https://www.virtualbox.org/manual/ch04.html#guestadd-3d
Tu as maintenant aussi le pci passthrough qui te permet de donner l'accès direct à un composant comme notammment une carte 3d (le gpu interne pouvant alors servir de carte graphique pour l'hôte).
et dans les 2 cas, c'est en mode expérimental.
Quel est le but final ?
Edit : je suppose que l'usage de gpu est pour accélerer des calculs. Mais en milieu virtualisé je ne sais pas ce que ça peut donner.
Bonjour,
Le GPU étant optimisé pour certains calcul (puces spécialisée, bien plus rapides) l'intérêt de l'émuler sur une puce plus lente est moyen. De plus, comme le CPU est plus généraliste, il est totalement possible de faire tous les calculs sur CPU (même ceux à l'origine pour GPU). En bref, le machine learning peut être optimisé avec des puces dédiées (dont les puces GPU), mais les émuler sur une puce lente ... l'intérêt est vite perdu.
Autant passer directement sur le CPU, sans émulation quelconque.
Note : on peut émuler, mais l'émulation apporte une surcouche, déjà que ce sera plus lent.
Sauf cas où le programme ne peut être modifié et il repose sur des API purement GPU (OpenGL, peut être CUDA), il n'y a aucun intérêt à faire de l'émulation.
Le PCI passtrough permet de dédier un périphérique à la VM en accès direct, mais c'est expérimental, dépendant du chipset de la machine.
Bonjour,
Peut-être il s'agissait de GPUs virtuels : https://www.nvidia.com/en-us/design-...-virtual-gpus/ ?
A mon avis, il n'y a aucune raison d'émuler un GPU pour ML.