Existe uma máquina virtual com acesso direto à CPU e GPU para jogos?

10

Desculpe pela longa pergunta.

Com a chegada do Steam para Linux, eu fiquei otimista e me livrei da instalação do Windows. O problema é que tenho cerca de 100 jogos Steam que não são (e podem nunca ser) portados para o Linux. Enfim, eu me cansei da inicialização dupla, e as soluções Wine (wineprefix e playonlinux) nem sempre funcionam. Então, eu queria saber se existe alguma solução para usar uma máquina virtual (ou algo semelhante) com acesso direto às especificações de hardware para executar jogos do Windows nela. (algo como o que a Parallels faz no mac). Reinstalar o Windows não é um problema enorme, mas eu esperava evitá-lo, pois gostaria de usar o Ubuntu como meu sistema operacional diário, juntamente com distribuições mais "difíceis" ... para aprender mais sobre o Linux.

Edit: Obrigado por todas as suas respostas: vou pensar na solução que você propôs. Honestamente, até hoje nunca ouvi falar de Xen, então terei que ler sobre isso ... e talvez comprar uma nova placa gráfica ... e um novo monitor. Acho que vou reinstalar o Windows em uma das minhas unidades ... É uma pena. obrigado novamente.

psylockeer
fonte
2
Veja esta pergunta sobre limitações pesadas para poder acessar a GPU a partir do Virtual Box.
Takkat 26/03
@Takkat Você já teve a chance de experimentar a passagem PCI? Funcionou bem?
Chad Harrison
@hydroparadise: não, meus hardwares não suportam o IOMMU. Eu acho que não é realmente fácil de conseguir, e você precisa de 2 placas gráficas.
Takkat 26/03

Respostas:

11

A resposta curta é: Não.
A resposta mais longa é: Ainda não ...

O suporte 3D da VBox mal conta. Ele fornece suporte 3D, mas absolutamente nenhum desempenho. O VMWare parece ter um desempenho muito melhor (observe que o benchmark está em um Mac) e isso pode ser reproduzível. A desvantagem aqui é uma grande pilha de dinheiro (não tenho certeza de como é o suporte 3D em suas ofertas gratuitas).

Mas se você quiser tirar o máximo proveito do seu hardware para jogos apenas para Windows, existe apenas uma solução e é inicializada no Windows. Receio dizer que provavelmente sempre será o caso desse subconjunto de jogos.

As únicas outras soluções quase aceitáveis ​​disponíveis:

  • Fight Wine (quando funciona, tende a funcionar muito bem)
  • Compre um console.
  • Faça lobby com o desenvolvedor para uma porta.

Existem todos os tipos de tecnologias de servidor que podem ser filtradas no tempo :

  • A Nvidia + Vmware está trabalhando em uma plataforma de jogos virtualizados com várias cabeças, mas sinceramente não espero que esse nível de integração esteja nas mãos dos consumidores por mais uma década, se não mais. Os fabricantes de gráficos querem que compremos dezenas e dezenas de cartões e a virtualização prejudica esse objetivo.

  • Você pode revertê-lo e ter uma VM host do Windows Server e paravirtuar uma área de trabalho do Ubuntu, com 3D compartilhado, mas, novamente, não tenho certeza de como seria o desempenho. E é uma tonelada de dinheiro para fazer legalmente. O host da área de trabalho não é tão bom assim.

  • O Xen não paravirtua uma instalação do Windows, então não faz sentido procurar por lá ainda. Ele possui módulos de passagem PCI e VGA, mas eles estão bloqueados em uma VM, portanto você precisa ter uma placa gráfica para cada instalação. Urgh.


Note que estou falando apenas de gráficos 3D aqui porque o restante está resolvido ou está quase resolvido. A virtualização da CPU está madura com a paravirtualização e extensões de CPU como Intel VT-x e AMD-V. A passagem periférica é uma largura de banda bastante baixa, portanto é simples de compartilhar.

Os gráficos estão atrasados ​​porque compartilhá-los da maneira que estamos falando não é uma necessidade comercial para os fabricantes. Parece que está indo dessa maneira (para farms de renderização de ponta e consolidação de estação de trabalho com base em servidor), observe esse espaço.

Oli
fonte
Quanto ao vinho, vale a pena olhar para o PlayOnLinux
Chad Harrison
@ Oli sua resposta foi muito completa, obrigado. Enfim, vi que é possível montar uma instalação existente do Windows em uma máquina virtual (após o trabalho adequado). Nesse caso, a aceleração de hardware seria a mesma que a virtualização palin?
22413 psylockeer
@psylockeer Você quer dizer montar uma unidade física (com uma instalação real do Windows) dentro de uma VM? Isso pode ser feito em todos os principais softwares de virtualização, mas você pode encontrar o Windows invertido. A última vez que tentei mudar o hardware em uma instalação do Windows, ele virou e nunca foi além de uma tela azul. Espero que os Estados Unidos tenham melhorado as coisas desde então. O acesso ainda não é direto (AFAIK), pois o cliente da VM ainda está acessando a unidade através do Linux - ele também não está em outro sistema de arquivos (se isso faz algum sentido) - então não espere um grande aumento de desempenho.
Oli
7

Se o seu hardware e o seu software suportam IOMMU (também conhecido como passagem de PCI, AMD-Vi e Intel VT-d), você pode atribuir dispositivos de E / S (por exemplo, a placa gráfica) às VMs.

Nas versões atuais do Ubuntu, você pode usar o Xen , desde que sua placa-mãe e sua CPU suportem o IOMMU.

Atualmente, estou usando uma VM do Windows 7 com duas GPUs AMD 7950 e funciona muito bem para jogos e mineração de Bitcoin / Litecoin.

Tutoriais, etc .:

Observe que você pode usar a GPU na VM em que a passa.

Dennis
fonte
Acredito que ele não poderá compartilhar uma única GPU entre VMs. No entanto, se ele tiver duas placas de vídeo (especialmente se ele tiver vários monitores ou um monitor com duas entradas adequadas), ou se ele estiver acessando a GUI do GNU / Linux apenas por VNC, SPICE ou similar, a passagem da GPU do Xen parece ser uma maneira de ir.
drdaeman
@drdaeman: Verdade. Ao passar por uma GPU, ela pode ser acessada apenas a partir dessa VM.
Dennis
thnks caras, infelizmente para o momento este solutionis fora de meu conhecimento ... e meus bolsos :-)
psylockeer
3

Sua VM do Windows é executada principalmente em hardware emulado. Esse hardware geralmente é relativamente simples.

Tendo dito isto:

  1. É possível emular funções 3D. O desempenho geralmente é abaixo do esperado e, às vezes, não funciona como esperado. (Por exemplo, a execução do Baldur's Gate 1 com a aceleração 3D ativada na estação de trabalho VMware 8 trava todo o host. Não apenas a VM). Isso melhorará com o tempo para todas as VMs.
    De fato, a estação de trabalho vmware 9 reivindica melhorias significativas, mas ainda não testei essa versão. Eu sei 5.5 e 8 não foi suficiente.
  2. Em vez de emular, você pode acessar diretamente o hardware de uma VM. A palavra-chave é é PCI [e] passthough. Esse é um recurso geralmente usado para passar por placas especiais, placas de rede de 10 Gbit etc., mas também deve funcionar para placas gráficas. Observe que usará uma placa apenas para a VM. Com placas gráficas, isso significa usar uma segunda placa gráfica para a VM.
Hennes
fonte
então eu precisaria de 2 monitores também, certo? ... de qualquer maneira, verifiquei e acho que minha CPU (primeira geração i5 750) não suporta vt-d.
Pslockeer 26/03
Essa coisa de 2 monitores é um bom ponto. Eu nunca considerei isso desde que eu agrupei a passagem de PCI para NICs, placas RAID e outras. --- Observe que a maioria dos monitores possui mais de uma entrada de sinal. Por exemplo, DVI, DP, composto, S-Video e componente ... Não que alternar a entrada de um monitor entre duas fontes seja uma ótima solução.
Hennes 27/03
0

Você já experimentou o Virtual Box ? Ao ler a lista de recursos , parece que ele tem o que você precisa ... acesso à GPU e CPU.

JackLock
fonte
O Virtualbox realmente permite que você instale o Windows, mas, tanto quanto eu sei, os jogos em 3D não são tão fáceis de alcançar.
22413 psylockeer
Honestamente, eu nunca tentei isso. Eu sempre preferi a inicialização dupla com o Windows apenas para jogar. E parece que alguns jogos irá trabalhar alguns não tão principalmente depende de quais jogos você deseja executar
JackLock
0

Experimente o jogo em qualquer lugar . Não é exatamente uma VM, é uma solução de jogos de código aberto, mas você ainda pode transmitir todo o seu desktop ou jogos.

Lucas
fonte
0

Quando você diz "acesso direto ao hardware", não está mais falando sobre Máquinas Virtuais, mas sim sobre Máquinas Reais. Para acesso direto aos jogos do Windows, você precisará do Windows.

Jason
fonte