GPUs virtuais ajudam a aumentar a eficiência do data center e fornecem uma experiência do usuário melhor, mas administradores devem analisar se suas cargas de trabalho justificam implementar essa tecnologia
A tecnologia de virtualização da Unidade de Processamento Gráfico (GPU, na sigla em inglês) oferece uma série de benefícios, como melhor experiência do usuário, uso reduzido de CPU e a capacidade de rodar aplicativos que exigem muitos recursos do data center. Mas os administradores devem garantir que suas cargas de trabalho usarão as GPUs virtualizadas de maneira eficiente e com boa relação custo-benefício. Do contrário, correm o risco da não utilização das GPUs, o que leva à sobrecarga da virtualização.
Tradicionalmente, a GPU virtualizada costumava ser usada apenas para workloads com muito processamento gráfico e em ambientes de VDI. Mas conforme essa tecnologia avança, e fornecedores como VMware e Nvidia produzem vGPUs mais fáceis de usar, os admins estão começando a implementá-las em seus data centers. A implementação de vGPU, porém, exige avaliação cuidadosa antes da aquisição, como escolher o tipo certo de chip para a GPU, entender os casos de uso e saber quando usar ou não essa tecnologia.
Tipos de chip de GPU virtualizada
Admins que decidem usar a tecnologia de GPU virtualizada têm várias opções, como Graphics Virtualization Technology (GVT) da Intel, Multiuser GPU (MxGPU) da Advanced Micro Devices (AMD) e vGPUs da Nvidia. O GVT da Intel exige uma camada de software que suporte hipervisores KVM e Xen. Também permite que VMs tenham acesso aos nucleos de GPU virtualizada com OpenCL e vem em três variações: GVT-d, GVT-g e GVT-s. GVT-d permite que os admins dediquem GPUs Intel a máquinas virtuais (VM, na sigla em inglês), GVT-g permite que os admins compartilhem uma vGPU entre múltiplas VMs usando um driver gráfico nativo e GVT-s permite aos admins compartilhar vGPUs com múltiplas VMs usando um driver gráfico virtualizado.
A vGPU da Nvidia também se baseia em uma camada de software sobre um hipervisor, o que permite às VMs compartilhar a GPU física subjacente. A vGPU da Nvidia tem uma capacidade única de operar em modo pass-through, o que permite uma única VM acessar a GPU por vez, o que, por sua vez, ajuda a melhorar a performance. Diferentemente das soluções de Intel e Nvidia, a MxGPU da AMD se baseia em placas gráficas com chips MxGPU e tecnologia Single Root I/O Virtualization para virtualização de GPU. Ela suporta hipervisores VMware ESXi, KVM e Xen.
Casos de uso para a tecnologia GPU
Admins podem usar vGPUs para aumentar a densidade do servidor e oferecer uma melhor experiência do usuário no terminal. Ao usar vGPUs, podem também reduzir o uso da CPU para aplicações específicas, como Microsoft Office e Windows 10. Por exemplo, sem uma vGPU, o uso de CPU pelo usuário rodando PowerPoint pode chegar a 30%. Mas com uma vGPU, os usuários podem reduzir o uso de CPU a apenas 5% ou no máximo 10%.
Outros casos de uso da tecnologia vGPU incluem dar suporte a aplicativos publicados, aumentar a capacidade do desktop virtual e migrar workstations high-end e aplicativos com uso intensivo de recursos da nuvem para o data center. As indústrias educacional e automotiva são duas verticais que usam tecnologia vGPU.
Melhore a eficiência dos sistemas virtuais com vGPUs
Usuários que se baseiam em VDI podem observar desempenho inferior com seus sistemas virtuais. Isso ocorre porque seus servidores não adaptados a GPU não têm os recursos próprios de GPU para funcionar efetivamente, tais como processadores e framebuffers.
Porém, usuários podem rodar gráficos complexos e manter o desempenho se tirarem vantagem das vGPUs. Por exemplo, núcleos de CPU normais tradicionalmente lidam com uma instrução por vez e não têm um desempenho tão bom quanto núcleos de GPU rodando a 700 MHz.
A Toyota está migrando para ambientes completamente virtualizados e confiando em tecnologia de vGPU para lidar com tarefas operacionais complexas em seus data centers e reduzir consumo de processamento.
Ciclos salvos de CPU levam a rotinas otimizadas de hardware, menor espaço ocupado e melhor refrigeração. Admins podem também reduzir o custo de processamento de rede, e ao mesmo tempo otimizar o desempenho do sistema virtual.
Quando não investir na tecnologia de GPU virtualizada
No início, o uso da tecnologia de GPU virtualizada estava associado ao processamento gráfico ou ficava restrito a workloads de processamento de alto desempenho, o que dificultava a implementação de vGPUs por parte dos admins.
Com os avanços de VMware e Nvidia, a virtualização e a configuração de GPU é hoje muito mais fácil para as organizações. Antes de investir em vGPUs, os admins devem garantir que vão usá-los com eficiência, ou a despesa com hardware que vem com as GPUs físicas não compensa.
Muitos vGPUs costumam ficar sem uso em um sistema virtual, o que reduz a relação custo-benefício. VGPUs têm bom desempenho em cargas de trabalho de aprendizado por máquina como o uso de reconhecimento facial pelo FBI, o que existe uma ampla gama de vGPUs para trabalhar dia e noite.
Mas usar vGPUs em um negócio médio é menos eficiente porque as vGPUs provavelmente não geram demanda constante de processamento. Admins deveriam confirmar que seus workloads podem realmente se beneficiar de processamento paralelo virtualizado para evitar custos ou overhead desnecessários.
Como implementar GPU virtualizada em vSphere
Há muitas formas de implementar a virtualização do hardware de GPU em vSphere, como VMDirectPath I/O, Nvidia Grid ou Bitfusion FlexDirect.
VMDirectPath I/O. Esse método de instalação é a maneira mais fácil de dar acesso às VMs a hardware de GPU em vSphere, mas tem suas próprias limitações. Depois que os admins selecionam um adaptador Peripheral Component Interconnect em seu host ESXi e designam o adaptador à VM, esse adaptador fica indisponível para qualquer outra ação. Com VMDirectPath I/O, a sobrecarga é mínima, mas os admins não conseguem usar vMotion ou tirar snapshots de VMs.
Nvidia Grid. Esse software permite que várias VMs compartilhem uma GPU e exige que os admins instalem software no hipervisor assim como em suas VMs. O Nvidia Grid permite que múltiplos usuários compartilhem recursos de hardware da GPU e migrem as VMs para outro host com vMotion. Porém, compartilhar recursos e VMs com múltiplos usuários pode causar problemas se os admins precisarem parar ou reinicializar as VMs que outros usuários estão rodando.
Bitfusion FlexDirect na vSphere. Admins podem criar uma camada de abstração entre o hardware da GPU e qualquer VMs que use Bitfusion FlexDirect em vSphere por meio de uma tecnologia de networking rápida, o que torna essas VMs independentes do hardware físico. Isso provê mais flexibilidade, mesmo entre clusters.
Baseado no artigo “GPU virtualization eases system workloads, boosts efficiency“