¿Existe una máquina virtual con acceso directo a CPU y GPU para juegos?

10

Perdón por la larga pregunta.

Con la llegada de Steam para Linux, podría haber sido demasiado optimista y eliminar la instalación de Windows. El problema es que tengo alrededor de 100 juegos de Steam que no están (y nunca pueden ser) portados a Linux. De todos modos, me cansé del arranque dual, y las soluciones Wine (wineprefix y playonlinux) no siempre funcionan. Entonces, me preguntaba si hay alguna solución para usar una máquina virtual (o algo similar) con acceso directo a las especificaciones de hardware para ejecutar juegos de Windows en ella. (algo como lo que hace Parallels en mac). Reinstalar Windows no es un gran problema, pero esperaba evitarlo, ya que me gustaría usar Ubuntu como mi sistema operativo cotidiano junto con distribuciones más "difíciles" ... para aprender más sobre Linux.

Editar: Gracias por todas sus respuestas: pensaré en la solución que propuso. Honestamente hasta el día de hoy, nunca escuché de Xen, así que tendré que leer al respecto ... y tal vez comprar una nueva tarjeta gráfica ... y un nuevo monitor. Creo que terminaré reinstalando Windows en una de mis unidades ... Sin embargo, es una pena. gracias de nuevo.

psylockeer
fuente
2
Consulte esta pregunta sobre limitaciones importantes para poder acceder a la GPU desde Virtual Box.
Takkat
@Takkat ¿Alguna vez tuvo la oportunidad de probar la transferencia PCI? ¿Funcionó bien?
Chad Harrison
@hydroparadise: no, mis hardwares no son compatibles con IOMMU. Supongo que no es realmente fácil de lograr, y necesitas 2 tarjetas gráficas.
Takkat

Respuestas:

11

La respuesta corta es: No.
La respuesta más larga es: aún no ...

El soporte 3D de VBox apenas cuenta. Proporciona soporte 3D pero absolutamente ningún rendimiento. VMWare parece funcionar mucho mejor (tenga en cuenta que el punto de referencia está en una Mac) y eso podría ser reproducible. La desventaja aquí es una gran cantidad de dinero en efectivo (no estoy seguro de cómo es el soporte 3D en sus ofertas gratuitas).

Pero si desea aprovechar al máximo su hardware para juegos exclusivos de Windows, solo hay una solución y es iniciar Windows. Me temo decir que ese siempre será el caso para ese subconjunto de juegos.

Las únicas otras soluciones casi aceptables disponibles:

  • Fight Wine (cuando funciona, tiende a funcionar muy bien)
  • Compra una consola.
  • Presiona al desarrollador para obtener un puerto.

Hay todo tipo de tecnologías de servidor que pueden filtrarse a tiempo :

  • Nvidia + Vmware están trabajando en una plataforma de juego virtualizada de múltiples cabezales, pero honestamente no espero que este nivel de integración esté en manos de los consumidores durante otra década, si no más. Los fabricantes de gráficos quieren que compremos docenas y docenas de tarjetas y la virtualización perjudica ese objetivo.

  • Podría revertirlo y tener una máquina virtual host de Windows Server y paravirtir un escritorio Ubuntu, con 3D compartido, pero nuevamente, no estoy seguro de cómo sería el rendimiento. Y es una tonelada de efectivo hacer legalmente. El host de escritorio no es tan bueno en absoluto.

  • Xen no paravirtirá una instalación de Windows, por lo que no tiene sentido mirar allí todavía. Tiene módulos de paso PCI y VGA, pero están bloqueados a una VM, por lo que tendría que tener una tarjeta gráfica para cada instalación. Urgh


Tenga en cuenta que aquí solo estoy hablando de gráficos 3D porque el resto son problemas resueltos o casi resueltos. La virtualización de CPU está madura con paravirtualización y extensiones de CPU como Intel VT-x y AMD-V. El paso periférico tiene un ancho de banda bastante bajo, por lo que es fácil de compartir.

Los gráficos están retrasados ​​porque compartirlos de la forma en que estamos hablando no es una necesidad comercial para los fabricantes. Sin embargo, parece estar yendo de esa manera (para granjas de renderizado de gama alta y consolidación de estaciones de trabajo basadas en servidor), así que tenga cuidado con ese espacio.

Oli
fuente
En cuanto al vino, definitivamente vale la pena mirar PlayOnLinux ... playonlinux.com/en
Chad Harrison
@Oli tu respuesta fue muy completa, gracias. De todos modos, vi que es posible montar una instalación de Windows existente en una máquina virtual (después de un trabajo adecuado). En ese caso, ¿la aceleración de hardware sería la misma que la virtualización de palin?
psylockeer
@psylockeer ¿Te refieres a montar una unidad física (con una instalación real de Windows) dentro de una VM? Eso se puede hacer en todos los principales software de virtualización, pero es posible que Windows se voltee. La última vez que intenté cambiar el hardware en una instalación de Windows se volcó y nunca llegó más allá de una pantalla azul. Esperemos que MS haya mejorado las cosas desde entonces. El acceso aún no es directo (AFAIK) ya que el cliente VM todavía está accediendo al disco a través de Linux, simplemente no está en otro sistema de archivos también (si eso tiene sentido), así que no esperes un gran aumento de rendimiento.
Oli
7

Si tanto su hardware como su software son compatibles con IOMMU (también conocido como PCI passthrough, AMD-Vi e Intel VT-d), puede asignar dispositivos de E / S asignados (por ejemplo, la tarjeta gráfica) a máquinas virtuales.

En las versiones actuales de Ubuntu, puede usar Xen , siempre que su placa base y su CPU admitan IOMMU.

Actualmente estoy usando una VM de Windows 7 con dos GPU AMD 7950, y funciona muy bien para juegos y minería de Bitcoin / Litecoin.

Tutoriales, etc .:

Tenga en cuenta que puede usar la GPU en esa VM si la pasa.

Dennis
fuente
Creo que no podrá compartir una sola GPU entre máquinas virtuales. Sin embargo, si tiene dos tarjetas de video (especialmente si tiene múltiples monitores o un monitor con dos entradas adecuadas), o está de acuerdo con acceder a la GUI de GNU / Linux únicamente a través de VNC, SPICE o similar, el paso de GPU de Xen parece ser una forma de Vamos.
drdaeman
@drdaeman: Cierto. Al pasar por una GPU, solo se puede acceder desde esa VM.
Dennis
Gracias chicos, lamentablemente por el momento esta solución está fuera de mi conocimiento ... y mis bolsillos :-)
psylockeer
3

Su máquina virtual de Windows se ejecuta principalmente en hardware emulado. Ese hardware suele ser relativamente simple.

Una vez dicho esto:

  1. Es posible emular funciones 3D. El rendimiento suele ser inferior, y a veces no funciona como se esperaba. (Por ejemplo, ejecutar Baldur's Gate 1 con aceleración 3D habilitada en la estación de trabajo Vmware 8 bloquea todo mi host. No solo la VM). Esto mejorará con el tiempo para todas las máquinas virtuales.
    De hecho, vmware workstation 9 afirma mejoras significativas, pero aún no he probado esa versión. Sé que 5.5 y 8 no fueron suficientes.
  2. En lugar de emular, puede acceder directamente al hardware desde una VM. La palabra clave es PCI [e] passthough. Esta es una característica que generalmente se usa para pasar por tarjetas especiales, NIC de 10 Gbit, etc., pero también debería funcionar para tarjetas gráficas. Tenga en cuenta que usará una tarjeta solo para la VM. Con las tarjetas gráficas, esto significa usar una segunda tarjeta gráfica para la VM.
Hennes
fuente
así que necesitaría 2 monitores también, ¿verdad? ... de todos modos lo comprobé y no creo que mi CPU (primera Gen i5 750) sea compatible con vt-d.
psylockeer
Esa cosa de 2 monitores es un buen punto. Nunca lo consideré, ya que agrego PCI a NIC, tarjetas RAID y demás. --- Tenga en cuenta que la mayoría de los monitores tienen más de una entrada de señal. Por ejemplo, DVI, DP, compuesto, S-Video y componentes ... No es que cambiar la entrada de un monitor entre dos fuentes sea una excelente solución.
Hennes
0

¿Has probado Virtual Box ? Al leer la lista de características , parece que tiene lo que necesita ... acceso a GPU y CPU.

JackLock
fuente
De hecho, Virtualbox te permite instalar Windows, pero hasta donde yo sé, los juegos en 3D no son tan fáciles de lograr.
psylockeer
Honestamente, nunca lo he intentado. Siempre he preferido el arranque dual con Windows solo para jugar. Y parece que algunos juegos funcionarán, algunos no dependerán tanto de los juegos que quieras ejecutar
JackLock el
0

Prueba Gaming Anywhere . No es exactamente una máquina virtual, sino una solución de juegos de código abierto, pero aún puede transmitir todo su escritorio o juegos.

Luke
fuente
0

Cuando dices "acceso directo al hardware" ya no estás hablando de máquinas virtuales, estás hablando de máquinas reales. Para acceder directamente a los juegos de Windows, necesitarás Windows.

Jason
fuente