Crie uma estação de trabalho virtual Linux com aceleração de GPU


Neste tutorial, mostramos como criar uma estação de trabalho virtual do Linux executando o Ubuntu 22.04 com uma GPU compatível com exibição. O Google Cloud oferece quatro GPUs com funcionalidade de exibição: NVIDIA L4, NVIDIA T4, NVIDIA P4 e NVIDIA P100.

Para criar uma estação de trabalho do Windows, consulte o tutorial Como criar uma estação de trabalho virtual Windows acelerada por GPU.

Depois de criar a estação de trabalho virtual, você aprenderá como acessá-la remotamente usando o HP Anyware (antigo Teradici CAS) usando a tecnologia PC via IP (PCoIP®), que é um protocolo de área de trabalho remota amplamente utilizado nos setores de mídia e entretenimento, desenvolvimento de jogos, arquitetura e engenharia. O PCoIP oferece recursos essenciais para esses tipos de cargas de trabalho, incluindo precisão de cores, compatibilidade com vários monitores, tela sem perdas e sensibilidade à pressão do tablet.

Neste tutorial, presumimos que você esteja familiarizado com a linha de comando do Linux.

Objetivos

  • Criar uma instância do Compute Engine com uma GPU. A instância servirá como base para a estação de trabalho virtual.
  • Instalar os drivers da NVIDIA na estação de trabalho virtual.
  • Instale o software HP Anyware na estação de trabalho virtual.
  • Conectar-se à estação de trabalho virtual usando um cliente de software PCoIP.

Custos

Neste tutorial, usamos o seguinte componente faturável do Google Cloud:

Use a calculadora de preços para gerar uma estimativa de custo com base no uso previsto.

Os recursos que compõem a estação de trabalho virtual e os fatores que afetam o custo neste tutorial são:

A transferência de dados da Internet representa os dados que são transmitidos da sua estação de trabalho virtual para o cliente de exibição local com a cobrança realizada de acordo com os custos de transferência de dados de saída da Internet. As variáveis que afetam a transferência de dados durante uma sessão de PCoIP são largura de banda, resolução de tela, número de monitores de exibição, aplicativos usados e tipo de atividade em cada monitor. O Guia de planejamento de sessão do HP Anyware ajuda a entender os diferentes requisitos de carga de trabalho.

Antes de começar

Este tutorial usa a CLI do Google Cloud, que pode ser executada em uma instância do Cloud Shell iniciada no console do Google Cloud. Se você quiser usar a CLI gcloud na sua estação de trabalho local, instale a CLI do Google Cloud. No tutorial, mostramos como executar comandos no Cloud Shell. Se você usa a CLI gcloud na estação de trabalho, ajuste as instruções de acordo.

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Compute Engine API.

    Enable the API

Além disso, verifique se você tem:

  • Um projeto do Google Cloud com cota para GPUs NVIDIA L4 Virtual Workstation na zona selecionada. É possível conseguir uma listagem da disponibilidade da GPU usando o comando gcloud compute accelerator-types list;
  • Um navegador Google Chrome para acessar o console do Google Cloud.
  • O software cliente PCoIP mais recente para Windows, Mac ou Linux para acessar a estação de trabalho virtual.
  • Uma conta em help.teradici.com para fazer o download do software HP Anyware. O registro da conta é gratuito.
  • Uma licença de software do HP Anyware. Solicite uma licença de avaliação ou entre em contato com o representante da HP e solicite um código de registro de avaliação para usar na estação de trabalho virtual.

Arquitetura

O diagrama a seguir mostra os componentes usados neste tutorial para implantar uma única estação de trabalho virtual. Os componentes opcionais mostrados no diagrama incluem maneiras diferentes de se conectar à estação de trabalho virtual, ao armazenamento compartilhado, a uma instância adicional para disponibilizar licenças de terceiros e a infraestrutura adicional que representa um farm de renderização ou computação.

Arquitetura de estação de trabalho virtual.

Escolha uma região.

Um fator importante ao implantar uma estação de trabalho virtual é a latência entre seu local e a instância criada. Quanto menor for a latência, melhor será a experiência. Portanto, trabalhe em uma região geograficamente mais próxima de onde você está. Para saber mais sobre os locais em que as diferentes GPUs estão disponíveis, consulte Disponibilidade de regiões e zonas de GPU.

  1. Abra o Cloud Shell. Se você estiver usando a CLI gcloud, abra uma janela do terminal no computador.

    Acessar o Cloud Shell

  2. Receba a lista das zonas com GPUs disponíveis:

    gcloud compute accelerator-types list

    Anote a região e a zona que estão mais próximas de você.

  3. Defina a zona com que você quer trabalhar.

    gcloud config set compute/zone ZONE

    Substitua ZONE pelo nome da zona que você está usando, como us-west1-b.

Escolher um tipo de máquina

As GPUs NVIDIA L4 estão conectadas ao tipo de máquina G2. As máquinas virtuais com uma ou mais GPUs têm um número máximo de vCPUs para cada GPU adicionada à instância. Por exemplo, cada GPU NVIDIA L4 permite ter até 32 vCPUs e até 128 GB de memória no tipo de máquina da instância. Para ver os intervalos de memória e de vCPU disponíveis para diferentes configurações de GPU, consulte a lista de GPUs.

O exemplo neste tutorial consiste em uma estação de trabalho virtual G2 de 8 vCPUs, que está bem abaixo do limite de 32 vCPUs para uma única GPU NVIDIA L4.

Criar a estação de trabalho virtual

  1. No Cloud Shell, crie a instância da estação de trabalho virtual do Compute Engine:

    gcloud compute instances create VM_NAME \
        --zone=ZONE \
        --machine-type=MACHINE_TYPE \
        --accelerator=type=ACCELERATOR,count=NUM-GPUS \
        --maintenance-policy="TERMINATE" \
        --image-project=ubuntu-os-cloud \
        --image-family=ubuntu-2204-lts \
        --boot-disk-size=SIZE \
        --boot-disk-type=TYPE \
        --network=NETWORK
    

    Substitua:

    • VM_NAME é o nome da estação de trabalho.
    • ZONE é a zona onde a instância será criada.
    • MACHINE_TYPE é a configuração de máquina predefinida ou personalizada.
    • ACCELERATOR é o tipo de GPU que você quer anexar, como nvidia-l4-vws.
    • NUM-GPUS é o número de GPUs a serem anexadas à VM.
    • SIZE é o tamanho do disco de inicialização, em gigabytes.
    • TYPE é o tipo de disco de inicialização. Para ver uma lista de tipos de disco disponíveis, execute gcloud compute disk-types list.
    • NETWORK é a rede em que a VM será criada;

    Por exemplo:

    gcloud compute instances create test-workstation \
        --zone=us-west1-b \
        --machine-type=g2-standard-8 \
        --accelerator=type=nvidia-l4-vws,count=1 \
        --maintenance-policy="TERMINATE" \
        --image-project=ubuntu-os-cloud \
        --image-family=ubuntu-2204-lts \
        --boot-disk-size=100 \
        --boot-disk-type=pd-ssd \
        --network=default
    

    Após a criação da estação de trabalho virtual, será exibido o status da máquina. A saída será assim:

    NAME: test-workstation
    ZONE: us-west1-b
    MACHINE_TYPE: g2-standard-8
    PREEMPTIBLE:
    INTERNAL_IP: 10.138.XX.XXX
    EXTERNAL_IP: XX.XXX.XXX.XXX
    STATUS: RUNNING
    

    Anote o endereço IP externo da estação de trabalho virtual. Você precisará usá-lo posteriormente neste tutorial.

    É possível recuperar o endereço IP externo da estação de trabalho virtual a qualquer momento usando o console do Google Cloud.

Fazer login na estação de trabalho virtual

Depois de criar a estação de trabalho virtual, faça o login na máquina para configurá-la.

  1. No Cloud Shell, conecte-se à nova estação de trabalho virtual:

    gcloud compute ssh VM_NAME
  2. Defina a senha da conta. Fazer login em uma estação de trabalho virtual usando o cliente de software PCoIP requer uma senha de usuário.

    sudo passwd `whoami`

    Quando for necessário, digite-a. Você usará essa senha mais tarde neste tutorial para fazer login na estação de trabalho virtual com o cliente PCoIP do HP Anyware.

Instalar as bibliotecas básicas

A imagem padrão do Google Cloud Ubuntu 22.04 é uma instalação mínima do Ubuntu. A próxima etapa é instalar as bibliotecas necessárias para executar a estação de trabalho virtual como uma estação de trabalho gráfica.

  1. Atualize os repositórios de software:

    sudo apt update
  2. Instale os componentes básicos:

    sudo apt install -y build-essential
    sudo apt install -y libvulkan1
    
  3. Atualize a versão gcc do driver NVIDIA:

    sudo apt install -y gcc-12
    sudo apt install -y linux-headers-$(uname -r)
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 12
    sudo update-alternatives --config gcc
    

Instalar o driver da NVIDIA

As GPUs NVIDIA L4, NVIDIA T4, NVIDIA P4 e NVIDIA P100 funcionam no Google Cloud apenas com drivers de estação de trabalho virtual NVIDIA RTX qualificados para cargas de trabalho de visualização. É possível fazer o download desses drivers em um bucket público do Google Cloud Storage.

  1. Para instalar o driver mais recente da NVIDIA RTX Virtual Workstation, siga as instruções (apenas nas Etapas 3 e 4).

  2. Reinicialize a estação de trabalho:

    sudo reboot

Instalar o ambiente de área de trabalho

Um ambiente de área de trabalho é necessário para executar a estação de trabalho virtual como uma estação de trabalho gráfica. Neste tutorial, você vai instalar o KDE Plasma Desktop.

  1. Instale o ambiente de área de trabalho:

    sudo apt update
    sudo apt -y install kubuntu-desktop
    sudo apt -y install dialog
    
  2. Reinicialize a estação de trabalho:

    sudo reboot

Instalar o software HP Anyware

O software HP Anyware fornece um agente gráfico que é executado na estação de trabalho virtual para fornecer a área de trabalho ao cliente de hardware ou software.

  1. Após a estação de trabalho virtual ser reiniciada, conecte-se novamente à ela usando o Cloud Shell:

    gcloud compute ssh VM_NAME
  2. Adicione o repositório de software da Teradici:

    curl -1sLf \
        https://dl.anyware.hp.com/TOKEN/pcoip-agent/cfg/setup/bash.deb.sh \
        | sudo -E distro=ubuntu codename=jammy bash
    

    Substitua:

  3. Atualize os repositórios de software:

    sudo apt update
  4. Opcional: instale dependências USB, se precisar de suporte a dispositivos USB que não sejam teclados, mouses e dispositivos de ponteiro.

    sudo apt -y install usb-vhci-dkms
  5. Instale o software HP Anyware:

    sudo apt -y install pcoip-agent-graphics

Registrar o agente gráfico do Anyware

Para usar o Anyware Graphics Agent, você precisa ter uma licença HP Anyware.

  1. No Cloud Shell, ative a licença do software HP Anyware:

    pcoip-register-host --registration-code=REGISTRATION-CODE

    Substitua REGISTRATION-CODE pelo código fornecido pelo HP Teradici no formato ABCDEFGHIJKL@0123-4567-89AB-CDEF.

  2. Reinicialize a estação de trabalho virtual:

    sudo reboot

Criar uma regra de firewall

O cliente PCoIP se comunica com a estação de trabalho virtual usando várias portas. Defina regras de firewall que permitam o tráfego para sua estação de trabalho virtual.

  • No Cloud Shell (não na estação de trabalho virtual), crie uma regra de firewall que abra as portas necessárias:

    gcloud compute firewall-rules create allow-pcoip \
        --action=ALLOW \
        --rules=tcp:443,tcp:4172,udp:4172 \
        --source-ranges=0.0.0.0/0
    

Fazer login na estação de trabalho virtual usando o cliente PCoIP

  1. No computador local, acesse a seção PCoIP Clients na página de suporte da HP Anyware, faça o download e a instalação do software do aplicativo PCoIP Client para o sistema operacional e, em seguida, inicie-o.

  2. No campo Host Address ou Registration Code, insira o endereço IP externo da sua estação de trabalho virtual. Se quiser, insira um nome para a conexão.

  3. Depois de se conectar, autentique-se inserindo o nome de usuário e a senha que você criou para a estação de trabalho virtual.

    Em alguns segundos, a área de trabalho do Linux vai aparecer.

Testar a estação de trabalho virtual

Depois de implantar a estação de trabalho virtual, é possível testar o desempenho e a interatividade dela usando várias ferramentas:

  • Execute as ferramentas de comparativo de GPU, como glxgears, glmark2 ou UNIGINE. Tratam-se de programas para testar o desempenho gráfico de uma estação de trabalho Linux.
  • Instale o Unreal Engine, o Unity Editor, o Blender ou qualquer aplicativo de criação de conteúdo.
  • Execute ferramentas de referência de renderizadores conhecidos, como V-Ray, Octane ou Maxon (links em inglês).
  • Use o Google Chrome para navegar nos seus sites favoritos ou reproduzir vídeos do YouTube.

Saiba mais sobre a otimização de desempenho do PCoIP com base na carga de trabalho.

Limpeza

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.

Depois de concluir o tutorial, limpe os recursos que você criou no Google Cloud para não receber cobranças por eles no futuro.

Interromper a estação de trabalho virtual

As estações de trabalho virtuais interrompidas geram cobranças pelo uso do disco permanente, mas podem ser reiniciadas a qualquer momento. Para interromper a estação de trabalho virtual, execute o comando a seguir no Cloud Shell:

gcloud compute instances stop VM_NAME

Excluir todos os componentes

  1. Exclua a estação de trabalho virtual.
  2. Exclua a regra de firewall.

Excluir o projeto

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

A seguir