Crie uma estação de trabalho Linux virtual acelerada pela GPU


Este tutorial mostra como criar uma estação de trabalho Linux virtual com o Ubuntu 22.04 com uma GPU compatível com ecrã anexada. Google Cloud oferece quatro GPUs compatíveis com ecrã: NVIDIA L4, NVIDIA T4, NVIDIA P4 e NVIDIA P100.

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

Depois de criar a estação de trabalho virtual, vai saber como aceder remotamente à mesma através do HP Anyware (anteriormente Teradici CAS), através da tecnologia PC-over-IP (PCoIP®), um protocolo de ambiente de trabalho remoto amplamente usado nas indústrias de multimédia e entretenimento, desenvolvimento de jogos, arquitetura e engenharia. O PCoIP oferece funcionalidades essenciais para estes tipos de cargas de trabalho, como a precisão das cores, o suporte para vários monitores, a apresentação sem perdas e a sensibilidade à pressão do tablet.

Este tutorial pressupõe que tem conhecimentos da linha de comandos do Linux.

Objetivos

  • Crie uma instância do Compute Engine com uma GPU. Esta instância serve de base para uma estação de trabalho virtual.
  • Instale os controladores da NVIDIA na estação de trabalho virtual.
  • Instale o software HP Anyware na estação de trabalho virtual.
  • Ligue-se à estação de trabalho virtual através de um cliente de software PCoIP.

Custos

Este tutorial usa o seguinte componente faturável do Google Cloud:

Pode usar a calculadora de preços para gerar uma estimativa de custo com base na sua utilização prevista.

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 a partir da sua estação de trabalho virtual para o cliente de visualização local e é faturada aos 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 PCoIP são a largura de banda, a resolução do ecrã, o número de monitores, as aplicações usadas e o tipo de atividade em cada monitor. O guia de planeamento de sessões do HP Anyware pode ajudar a compreender os diferentes requisitos de carga de trabalho.

Antes de começar

Este tutorial usa a CLI do Google Cloud, que pode executar a partir de uma instância do Cloud Shell iniciada a partir do Google Cloud console. Se quiser usar a CLI gcloud na sua estação de trabalho local, instale a CLI do Google Cloud. O tutorial mostra como executar comandos no Cloud Shell. Se usar a CLI gcloud na sua estação de trabalho, ajuste as instruções em conformidade.

  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.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

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

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Compute Engine API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  8. Além disso, certifique-se de que tem o seguinte:

    • Um Google Cloud projeto com quota para GPUs de estação de trabalho virtual NVIDIA L4 na sua zona selecionada. Pode obter uma lista da disponibilidade de GPUs através do comando gcloud compute accelerator-types list.
    • Um navegador Google Chrome para aceder à Google Cloud consola.
    • O software PCoIP Client mais recente para Windows, Mac ou Linux para aceder à estação de trabalho virtual.
    • Uma conta em help.teradici.com para transferir o software HP Anyware. O registo da conta é gratuito.
    • Uma licença de software do HP Anyware. Pode pedir uma licença de avaliação ou contactar o seu representante da HP e pedir um código de registo de avaliação para usar nesta estação de trabalho virtual.

Arquitetura

O diagrama seguinte mostra os componentes usados neste tutorial para implementar uma única estação de trabalho virtual. Os componentes opcionais apresentados no diagrama incluem diferentes formas de estabelecer ligação à sua estação de trabalho virtual, armazenamento partilhado, uma instância adicional para publicar licenças de terceiros e infraestrutura adicional que representa uma farm de renderização ou computação.

Arquitetura de estação de trabalho virtual.

Escolha uma região

Um fator importante quando implementa uma estação de trabalho virtual é a latência entre a sua localização e a instância que cria. Quanto menor for a latência, melhor é a experiência. Por isso, quer trabalhar numa região geograficamente mais próxima de si. Para saber onde as diferentes GPUs estão disponíveis, consulte o artigo Disponibilidade de regiões e zonas de GPUs.

  1. Abra o Cloud Shell. (Se estiver a usar a CLI gcloud, abra uma janela de terminal no computador.)

    Aceda ao Cloud Shell

  2. Obtenha uma lista das zonas nas quais as GPUs estão disponíveis:

    gcloud compute accelerator-types list

    Tome nota da região e da zona que estão fisicamente mais próximas de si.

  3. Defina a zona com a qual quer trabalhar:

    gcloud config set compute/zone ZONE

    Substitua ZONE pelo nome da zona que está a usar, como us-west1-b.

Escolha um tipo de máquina

As GPUs NVIDIA L4 estão associadas 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 que adicionar à 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 vCPU e memória disponíveis para diferentes configurações de GPU, consulte a lista de GPUs.

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

Crie 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 o seguinte:

    • VM_NAME é o nome da sua estação de trabalho.
    • ZONE é a zona na qual criar a VM.
    • MACHINE_TYPE é a configuração da máquina predefinida ou personalizada.
    • ACCELERATOR é o tipo de GPU que quer anexar, como nvidia-l4-vws.
    • NUM-GPUS é o número de GPUs a associar à VM.
    • SIZE é o tamanho do disco de arranque, em gigabytes.
    • TYPE é o tipo de disco de arranque. Para obter uma lista dos tipos de discos disponíveis, execute gcloud compute disk-types list.
    • NETWORK é a rede na qual criar a VM.

    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
    

    Depois de criar a estação de trabalho virtual, é apresentado o estado da máquina. O resultado tem um aspeto semelhante ao seguinte:

    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
    

    Tome nota do endereço IP externo da estação de trabalho virtual. Vai usá-lo mais tarde no tutorial.

    Pode obter o endereço IP externo da sua estação de trabalho virtual em qualquer altura através da Google Cloud consola.

Inicie sessão na sua estação de trabalho virtual

Depois de criar a estação de trabalho virtual, inicia sessão na máquina para a poder configurar.

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

    gcloud compute ssh VM_NAME
  2. Defina a palavra-passe da sua conta. O início de sessão numa estação de trabalho virtual através do cliente de software PCoIP requer uma palavra-passe do utilizador.

    sudo passwd `whoami`

    Quando lhe for pedido, introduza uma palavra-passe. Vai usar esta palavra-passe mais tarde no tutorial para iniciar sessão na sua estação de trabalho virtual com o cliente PCoIP do HP Anyware.

Instale as bibliotecas base

A imagem predefinida do Google Cloud  Ubuntu 22.04 é uma instalação mínima do Ubuntu. O passo seguinte é instalar as bibliotecas necessárias para executar a estação de trabalho virtual como uma estação de trabalho de gráficos.

  1. Atualize os repositórios de software:

    sudo apt update
  2. Instale os componentes base:

    sudo apt install -y build-essential
    sudo apt install -y libvulkan1
    
  3. Atualize a versão gcc para o controlador da 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
    

Instale o controlador da NVIDIA

As GPUs NVIDIA L4, NVIDIA T4, NVIDIA P4 e NVIDIA P100 funcionam Google Cloud apenas com controladores NVIDIA RTX Virtual Workstation qualificados para cargas de trabalho de visualização. Estes controladores podem ser transferidos a partir de um Google Cloud contentor de armazenamento público.

  1. Para instalar o controlador mais recente da estação de trabalho virtual NVIDIA RTX, siga as instruções (apenas os passos 3 e 4).

  2. Reinicie a estação de trabalho:

    sudo reboot

Instale o ambiente de trabalho

É necessário um ambiente de trabalho para executar a sua estação de trabalho virtual como uma estação de trabalho de gráficos. Para este tutorial, instala o ambiente de trabalho KDE Plasma.

  1. Instale o ambiente de trabalho:

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

    sudo reboot

Instale o software HP Anyware

O software HP Anyware oferece um agente gráfico que é executado na sua estação de trabalho virtual, disponibilizando o ambiente de trabalho ao seu cliente de hardware ou software.

  1. Quando a estação de trabalho virtual for reiniciada, no Cloud Shell, volte a ligar-se à estação de trabalho virtual:

    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 o seguinte:

  3. Atualize os repositórios de software:

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

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

    sudo apt -y install pcoip-agent-graphics

Registe o agente de gráficos do Anyware

Para usar o agente gráfico do HP Anyware, tem de ter uma licença do 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 que a HP Teradici lhe forneceu no formato ABCDEFGHIJKL@0123-4567-89AB-CDEF.

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

    sudo reboot

Crie uma regra de firewall

O cliente PCoIP comunica com a sua estação de trabalho virtual através de várias portas. Tem de definir regras de firewall que permitam o tráfego para a 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
    

Inicie sessão na sua estação de trabalho virtual através do cliente PCoIP

  1. No seu computador local, aceda à secção PCoIP Clients na página de apoio técnico do HP Anyware e, de seguida, transfira, instale e inicie a aplicação PCoIP Software Client para o seu sistema operativo.

  2. No campo Endereço do anfitrião ou código de registo, introduza o endereço IP externo da sua estação de trabalho virtual. Se quiser, pode introduzir um nome para a ligação.

  3. Quando tiver ligação, autentique-se introduzindo o nome de utilizador e a palavra-passe que criou anteriormente para a estação de trabalho virtual.

    Em alguns segundos, é apresentado o ambiente de trabalho do Linux.

Teste a sua estação de trabalho virtual

Depois de implementar a estação de trabalho virtual, pode testar o desempenho e a interatividade através de várias ferramentas:

  • Execute ferramentas de benchmark da GPU, como glxgears, glmark2 ou UNIGINE, que são programas para testar o desempenho gráfico numa estação de trabalho Linux.
  • Instale o Unreal Engine, Unity Editor, Blender> ou qualquer aplicação de criação de conteúdo.
  • Execute ferramentas de testes de referência de renderização para renderizadores populares, como V-Ray, Octane, ou Maxon.
  • Use o Google Chrome para navegar nos seus sites favoritos ou ver vídeos do YouTube.

Também pode saber mais sobre a otimização do desempenho do PCoIP com base na sua carga de trabalho.

Limpar

Para evitar incorrer em custos na sua conta do Google Cloud pelos recursos usados neste tutorial, elimine o projeto que contém os recursos ou mantenha o projeto e elimine os recursos individuais.

Depois de concluir o tutorial, limpe os recursos que criou no Google Cloud para que não lhe sejam faturados no futuro.

Pare a estação de trabalho virtual

As estações de trabalho virtuais paradas incorrem em custos para o disco persistente, mas podem ser reiniciadas em qualquer altura. Para parar a estação de trabalho virtual, execute o seguinte comando no Cloud Shell:

gcloud compute instances stop VM_NAME

Elimine todos os componentes

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

Elimine 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.

O que se segue?