Este documento descreve a configuração de instâncias de máquinas virtuais (MV) A3 Mega, A3 High ou A3 Edge que têm oito GPUs NVIDIA H100 anexadas e usam uma das seguintes tecnologias GPUDirect: GPUDirect-TCPX ou GPUDirect-TCPXO. Para criar uma instância A3 High com menos de 8 GPUs, consulte o artigo Crie uma instância A3 High ou A2.
A tecnologia GPUDirect que usa depende do tipo de máquina A3 que selecionar.
- GPUDirect-TCPXO: é uma pilha de rede descarregada semelhante a RDMA que é suportada em tipos de máquinas A3 Mega (
a3-megagpu-8g) com oito GPUs H100. - GPUDirect-TCPX: é uma versão otimizada do TCP convidado que oferece
menor latência e é suportada nos tipos de máquinas A3 High (
a3-highgpu-8g) e A3 Edge (a3-edgegpu-8g) que têm oito GPUs H100.
A série de máquinas otimizadas para aceleradores A3
tem 208 vCPUs e até 1872 GB de memória. Os tipos de máquinas a3-megagpu-8g, a3-highgpu-8g e a3-edgegpu-8g oferecem 80 GB de memória de GPU por GPU. Estes tipos de máquinas podem atingir até 1800 Gbps de largura de banda da rede, o que os torna ideais para modelos de linguagem baseados em transformadores grandes, bases de dados e computação de alto desempenho (HPC).
O GPUDirect-TCPX e o GPUDirect-TCPXO usam a tecnologia NVIDIA GPUDirect para aumentar o desempenho e reduzir a latência das suas VMs A3. Isto é conseguido permitindo que as cargas úteis dos pacotes de dados sejam transferidas diretamente da memória da GPU para a interface de rede, ignorando a CPU e a memória do sistema. Esta é uma forma de acesso direto à memória remoto (RDMA). Quando combinadas com a NIC virtual da Google (gVNIC), as VMs A3 podem oferecer o débito mais elevado entre VMs num cluster em comparação com os tipos de máquinas otimizados para aceleradores A2 ou G2 da geração anterior.
Este documento descreve como criar uma VM A3 Mega, A3 High ou A3 Edge e ativar o GPUDirect-TCPX ou o GPUDirect-TCPXO para testar o desempenho melhorado da rede de GPU.
Antes de começar
- Para rever as limitações e os passos pré-requisitos adicionais para criar instâncias com GPUs anexadas, como selecionar uma imagem do SO e verificar a quota de GPU, consulte o resumo da criação de uma instância com GPUs anexadas.
-
Se ainda não o tiver feito, configure a autenticação.
A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:
-
Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:
gcloud initSe estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
- Set a default region and zone.
-
Funções necessárias
Para receber as autorizações
necessárias para criar VMs,
peça ao seu administrador para lhe conceder a
função de IAM Administrador de instâncias do Compute (v1) (roles/compute.instanceAdmin.v1)
no projeto.
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Esta função predefinida contém as autorizações necessárias para criar VMs. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:
Autorizações necessárias
As seguintes autorizações são necessárias para criar VMs:
-
compute.instances.createno projeto -
Para usar uma imagem personalizada para criar a VM:
compute.images.useReadOnlyna imagem -
Para usar um instantâneo para criar a VM:
compute.snapshots.useReadOnlyno instantâneo -
Para usar um modelo de instância para criar a VM:
compute.instanceTemplates.useReadOnlyno modelo de instância -
Para especificar uma sub-rede para a sua VM:
compute.subnetworks.useno projeto ou na sub-rede escolhida -
Para especificar um endereço IP estático para a VM:
compute.addresses.useno projeto -
Para atribuir um endereço IP externo à VM quando usar uma rede VPC:
compute.subnetworks.useExternalIpno projeto ou na sub-rede escolhida -
Para atribuir uma rede antiga à VM:
compute.networks.useno projeto -
Para atribuir um endereço IP externo à VM quando usar uma rede antiga:
compute.networks.useExternalIpno projeto -
Para definir os metadados da instância de VM para a VM:
compute.instances.setMetadatano projeto -
Para definir etiquetas para a VM:
compute.instances.setTagsna VM -
Para definir etiquetas para a VM:
compute.instances.setLabelsna VM -
Para definir uma conta de serviço para a VM usar:
compute.instances.setServiceAccountna VM -
Para criar um novo disco para a VM:
compute.disks.createno projeto -
Para anexar um disco existente no modo de leitura ou leitura/escrita:
compute.disks.useno disco -
Para anexar um disco existente no modo de leitura:
compute.disks.useReadOnlyno disco
Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.
Vista geral
Para testar o desempenho da rede com o GPUDirect, conclua os seguintes passos:
- Configure uma ou mais redes da nuvem virtual privada (VPC) com uma MTU grande configurada.
- Crie a sua instância de GPU.
Configure redes VPC
Para permitir uma comunicação eficiente para as suas VMs de GPU, tem de criar uma rede de gestão e uma ou mais redes de dados. A rede de gestão é usada para acesso externo, por exemplo, SSH, e para a maioria das comunicações de rede gerais. As redes de dados são usadas para comunicação de alto desempenho entre as GPUs em VMs diferentes, por exemplo, para tráfego de acesso direto à memória remoto (RDMA).
Para estas redes VPC, recomendamos que defina a unidade de transmissão máxima (MTU) para um valor superior. Os valores de MTU mais elevados aumentam o tamanho dos pacotes e reduzem a sobrecarga do cabeçalho dos pacotes, o que aumenta o débito de dados da carga útil. Para mais informações sobre como criar redes VPC, consulte o artigo Crie e valide uma rede MTU de jumbo frames.
Crie uma rede de gestão, uma sub-rede e uma regra de firewall
Conclua os passos seguintes para configurar a rede de gestão:
Crie a rede de gestão com o comando
networks create:gcloud compute networks create NETWORK_NAME_PREFIX-mgmt-net \ --project=PROJECT_ID \ --subnet-mode=custom \ --mtu=8244Crie a sub-rede de gestão com o comando
networks subnets create:gcloud compute networks subnets create NETWORK_NAME_PREFIX-mgmt-sub \ --project=PROJECT_ID \ --network=NETWORK_NAME_PREFIX-mgmt-net \ --region=REGION \ --range=192.168.0.0/24Crie regras de firewall através do comando
firewall-rules create.Crie uma regra de firewall para a rede de gestão.
gcloud compute firewall-rules create NETWORK_NAME_PREFIX-mgmt-internal \ --project=PROJECT_ID \ --network=NETWORK_NAME_PREFIX-mgmt-net \ --action=ALLOW \ --rules=tcp:0-65535,udp:0-65535,icmp \ --source-ranges=192.168.0.0/16Crie a regra de firewall
tcp:22para limitar os endereços IP de origem que podem estabelecer ligação à sua VM através de SSH.gcloud compute firewall-rules create NETWORK_NAME_PREFIX-mgmt-external-ssh \ --project=PROJECT_ID \ --network=NETWORK_NAME_PREFIX-mgmt-net \ --action=ALLOW \ --rules=tcp:22 \ --source-ranges=SSH_SOURCE_IP_RANGECrie a regra de firewall
icmpque pode ser usada para verificar se existem problemas de transmissão de dados na rede.gcloud compute firewall-rules create NETWORK_NAME_PREFIX-mgmt-external-ping \ --project=PROJECT_ID \ --network=NETWORK_NAME_PREFIX-mgmt-net \ --action=ALLOW \ --rules=icmp \ --source-ranges=0.0.0.0/0
Substitua o seguinte:
NETWORK_NAME_PREFIX: o prefixo do nome a usar para as redes e as sub-redes da VPC.PROJECT_ID: o ID do seu projeto.REGION: a região onde quer criar as redes.SSH_SOURCE_IP_RANGE: intervalo de IPs no formato CIDR. Isto especifica que endereços IP de origem podem estabelecer ligação à sua VM através de SSH.
Crie redes de dados, sub-redes e regras de firewall
O número de redes de dados varia consoante o tipo de máquina de GPU que está a criar.A3 Mega
O A3 Mega requer oito redes de dados. Use o comando seguinte para criar oito redes de dados, cada uma com sub-redes e regras de firewall.
for N in $(seq 1 8); do
gcloud compute networks create NETWORK_NAME_PREFIX-data-net-$N \
--project=PROJECT_ID \
--subnet-mode=custom \
--mtu=8244
gcloud compute networks subnets create NETWORK_NAME_PREFIX-data-sub-$N \
--project=PROJECT_ID \
--network=NETWORK_NAME_PREFIX-data-net-$N \
--region=REGION \
--range=192.168.$N.0/24
gcloud compute firewall-rules create NETWORK_NAME_PREFIX-data-internal-$N \
--project=PROJECT_ID \
--network=NETWORK_NAME_PREFIX-data-net-$N \
--action=ALLOW \
--rules=tcp:0-65535,udp:0-65535,icmp \
--source-ranges=192.168.0.0/16
done
A3 High e A3 Edge
O A3 High e o A3 Edge requerem quatro redes de dados. Use o seguinte comando para criar quatro redes de dados, cada uma com sub-redes e regras de firewall.
for N in $(seq 1 4); do
gcloud compute networks create NETWORK_NAME_PREFIX-data-net-$N \
--project=PROJECT_ID \
--subnet-mode=custom \
--mtu=8244
gcloud compute networks subnets create NETWORK_NAME_PREFIX-data-sub-$N \
--project=PROJECT_ID \
--network=NETWORK_NAME_PREFIX-data-net-$N \
--region=REGION \
--range=192.168.$N.0/24
gcloud compute firewall-rules create NETWORK_NAME_PREFIX-data-internal-$N \
--project=PROJECT_ID \
--network=NETWORK_NAME_PREFIX-data-net-$N \
--action=ALLOW \
--rules=tcp:0-65535,udp:0-65535,icmp \
--source-ranges=192.168.0.0/16
done
Crie instâncias A3 Mega (GPUDirect-TCPXO)
Crie as suas instâncias A3 Mega usando a imagem do SO otimizado para contentores cos-121-lts
ou posterior.
COS
Para testar o desempenho da rede com o GPUDirect-TCPXO, crie, pelo menos, duas instâncias de VM A3 Mega.
Crie cada VM com a imagem do SO otimizado para contentores cos-121-lts ou posterior e especificando as redes VPC que criou no passo anterior.
As VMs A3 Mega requerem nove interfaces de rede da NIC virtual da Google (gVNIC), uma para a rede de gestão e oito para as redes de dados.
Com base no modelo de aprovisionamento que quer usar para criar a sua VM, selecione uma das seguintes opções:
Standard
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=ZONE \
--machine-type=a3-megagpu-8g \
--maintenance-policy=TERMINATE \
--restart-on-failure \
--image-family=cos-121-lts \
--image-project=cos-cloud \
--boot-disk-size=BOOT_DISK_SIZE \
--metadata=cos-update-strategy=update_disabled \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-mgmt-net,subnet=NETWORK_NAME_PREFIX-mgmt-sub \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-1,subnet=NETWORK_NAME_PREFIX-data-sub-1,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-2,subnet=NETWORK_NAME_PREFIX-data-sub-2,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-3,subnet=NETWORK_NAME_PREFIX-data-sub-3,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-4,subnet=NETWORK_NAME_PREFIX-data-sub-4,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-5,subnet=NETWORK_NAME_PREFIX-data-sub-5,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-6,subnet=NETWORK_NAME_PREFIX-data-sub-6,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-7,subnet=NETWORK_NAME_PREFIX-data-sub-7,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-8,subnet=NETWORK_NAME_PREFIX-data-sub-8,no-address
Substitua o seguinte:
VM_NAME: o nome da sua instância de VM.PROJECT_ID: o ID do seu projeto.ZONE: uma zona que suporta o seu tipo de máquina.BOOT_DISK_SIZE: o tamanho do disco de arranque em GB, por exemplo,50.NETWORK_NAME_PREFIX: o prefixo do nome a usar para as redes e as sub-redes da VPC.
Espaço
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=ZONE \
--machine-type=a3-megagpu-8g \
--maintenance-policy=TERMINATE \
--restart-on-failure \
--image-family=cos-121-lts \
--image-project=cos-cloud \
--boot-disk-size=BOOT_DISK_SIZE \
--metadata=cos-update-strategy=update_disabled \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-mgmt-net,subnet=NETWORK_NAME_PREFIX-mgmt-sub \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-1,subnet=NETWORK_NAME_PREFIX-data-sub-1,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-2,subnet=NETWORK_NAME_PREFIX-data-sub-2,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-3,subnet=NETWORK_NAME_PREFIX-data-sub-3,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-4,subnet=NETWORK_NAME_PREFIX-data-sub-4,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-5,subnet=NETWORK_NAME_PREFIX-data-sub-5,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-6,subnet=NETWORK_NAME_PREFIX-data-sub-6,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-7,subnet=NETWORK_NAME_PREFIX-data-sub-7,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-8,subnet=NETWORK_NAME_PREFIX-data-sub-8,no-address \
--provisioning-model=SPOT \
--instance-termination-action=TERMINATION_ACTION
Substitua o seguinte:
VM_NAME: o nome da sua instância de VM.PROJECT_ID: o ID do seu projeto.ZONE: uma zona que suporta o seu tipo de máquina.BOOT_DISK_SIZE: o tamanho do disco de arranque em GB, por exemplo,50.NETWORK_NAME_PREFIX: o prefixo do nome a usar para as redes e as sub-redes da VPC.TERMINATION_ACTION: se a VM deve ser parada ou eliminada na preempção. Especifique um dos seguintes valores:- Para parar a VM:
STOP - Para eliminar a VM:
DELETE
- Para parar a VM:
Flex-start
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=ZONE \
--machine-type=a3-megagpu-8g \
--maintenance-policy=TERMINATE \
--restart-on-failure \
--image-family=cos-121-lts \
--image-project=cos-cloud \
--boot-disk-size=BOOT_DISK_SIZE \
--metadata=cos-update-strategy=update_disabled \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-mgmt-net,subnet=NETWORK_NAME_PREFIX-mgmt-sub \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-1,subnet=NETWORK_NAME_PREFIX-data-sub-1,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-2,subnet=NETWORK_NAME_PREFIX-data-sub-2,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-3,subnet=NETWORK_NAME_PREFIX-data-sub-3,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-4,subnet=NETWORK_NAME_PREFIX-data-sub-4,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-5,subnet=NETWORK_NAME_PREFIX-data-sub-5,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-6,subnet=NETWORK_NAME_PREFIX-data-sub-6,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-7,subnet=NETWORK_NAME_PREFIX-data-sub-7,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-8,subnet=NETWORK_NAME_PREFIX-data-sub-8,no-address \
--provisioning-model=FLEX_START \
--instance-termination-action=TERMINATION_ACTION \
--max-run-duration=RUN_DURATION \
--request-valid-for-duration=VALID_FOR_DURATION \
--reservation-affinity=none
Substitua o seguinte:
VM_NAME: o nome da sua instância de VM.PROJECT_ID: o ID do seu projeto.ZONE: uma zona que suporta o seu tipo de máquina.BOOT_DISK_SIZE: o tamanho do disco de arranque em GB, por exemplo,50.NETWORK_NAME_PREFIX: o prefixo do nome a usar para as redes e as sub-redes da VPC.TERMINATION_ACTION: se deve parar ou eliminar a VM no final da respetiva duração de execução. Especifique um dos seguintes valores:- Para parar a VM:
STOP - Para eliminar a VM:
DELETE
- Para parar a VM:
RUN_DURATION: o tempo máximo que a VM é executada antes de o Compute Engine a parar ou eliminar. Tem de formatar o valor como o número de dias, horas, minutos ou segundos, seguido ded,h,mes, respetivamente. Por exemplo, um valor de30mdefine um tempo de 30 minutos e um valor de1h2m3sdefine um tempo de uma hora, dois minutos e três segundos. Pode especificar um valor entre 10 minutos e sete dias.VALID_FOR_DURATION`: o tempo máximo de espera para o aprovisionamento dos recursos pedidos. Tem de formatar o valor como o número de dias, horas, minutos ou segundos seguido ded,h,mes, respetivamente. Com base nos requisitos zonais da sua carga de trabalho, especifique uma das seguintes durações para ajudar a aumentar as probabilidades de êxito do seu pedido de criação de VMs:- Se a sua carga de trabalho exigir que crie a VM numa zona específica, especifique uma duração
entre 90 segundos (
90s) e duas horas (2h). As durações mais longas dão-lhe maiores probabilidades de obter recursos. - Se a VM puder ser executada em qualquer zona na região, especifique uma duração de zero segundos
(
0s). Este valor especifica que o Compute Engine só atribui recursos se estiverem imediatamente disponíveis. Se o pedido de criação falhar porque os recursos estão indisponíveis, tente novamente o pedido numa zona diferente.
- Se a sua carga de trabalho exigir que crie a VM numa zona específica, especifique uma duração
entre 90 segundos (
Associado a reserva
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=ZONE \
--machine-type=a3-megagpu-8g \
--maintenance-policy=TERMINATE \
--restart-on-failure \
--image-family=cos-121-lts \
--image-project=cos-cloud \
--boot-disk-size=BOOT_DISK_SIZE \
--metadata=cos-update-strategy=update_disabled \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-mgmt-net,subnet=NETWORK_NAME_PREFIX-mgmt-sub \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-1,subnet=NETWORK_NAME_PREFIX-data-sub-1,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-2,subnet=NETWORK_NAME_PREFIX-data-sub-2,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-3,subnet=NETWORK_NAME_PREFIX-data-sub-3,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-4,subnet=NETWORK_NAME_PREFIX-data-sub-4,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-5,subnet=NETWORK_NAME_PREFIX-data-sub-5,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-6,subnet=NETWORK_NAME_PREFIX-data-sub-6,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-7,subnet=NETWORK_NAME_PREFIX-data-sub-7,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-8,subnet=NETWORK_NAME_PREFIX-data-sub-8,no-address \
--provisioning-model=RESERVATION_BOUND \
--instance-termination-action=TERMINATION_ACTION \
--reservation-affinity=specific \
--reservation=RESERVATION_URL
Substitua o seguinte:
VM_NAME: o nome da sua instância de VM.PROJECT_ID: o ID do seu projeto.ZONE: uma zona que suporta o seu tipo de máquina.BOOT_DISK_SIZE: o tamanho do disco de arranque em GB, por exemplo,50.NETWORK_NAME_PREFIX: o prefixo do nome a usar para as redes e as sub-redes da VPC.TERMINATION_ACTION: se deve parar ou eliminar a VM no final do período de reserva. Especifique um dos seguintes valores:- Para parar a VM:
STOP - Para eliminar a VM:
DELETE
- Para parar a VM:
RESERVATION_URL: o URL da reserva que quer consumir. Especifique um dos seguintes valores:- Se criou a reserva no mesmo projeto:
example-reservation - Se a reserva estiver num projeto diferente e
o seu projeto puder usá-la:
projects/PROJECT_ID/reservations/example-reservation.
- Se criou a reserva no mesmo projeto:
Instale controladores da GPU
Em cada VM A3 Mega, instale os controladores da GPU.
Instale os controladores da GPU NVIDIA.
sudo cos-extensions install gpu -- --version=latest
Volte a montar o caminho.
sudo mount --bind /var/lib/nvidia /var/lib/nvidia sudo mount -o remount,exec /var/lib/nvidia
Conceda às NICs acesso às GPUs
Em cada VM A3 Mega, conceda às NICs acesso às GPUs.
- Ajuste as definições da firewall para aceitar todas as ligações TCP recebidas e ativar a comunicação
entre os nós no seu cluster:
sudo /sbin/iptables -I INPUT -p tcp -m tcp -j ACCEPT
- Configure o módulo
dmabuf. Carregue o móduloimport-helper, que faz parte da frameworkdmabuf. Esta estrutura permite a partilha de memória de alta velocidade e sem cópias entre a GPU e a placa de rede (NIC), um componente crítico para a tecnologia GPUDirect:sudo modprobe import-helper
- Configure o Docker para autenticar pedidos ao Artifact Registry.
docker-credential-gcr configure-docker --registries us-docker.pkg.dev
- Inicie o
RxDMno contentor.RxDMé um serviço de gestão que é executado juntamente com a aplicação de GPU para gerir a memória da GPU. Este serviço pré-atribui e gere a memória da GPU para o tráfego de rede recebido, que é um elemento essencial da tecnologia GPUDirect e essencial para redes de alto desempenho. Inicie um contentor do Docker com o nomerxdm:docker run --pull=always --rm --detach --name rxdm \ --network=host --cap-add=NET_ADMIN \ --privileged \ --volume /var/lib/nvidia:/usr/local/nvidia \ --device /dev/nvidia0:/dev/nvidia0 \ --device /dev/nvidia1:/dev/nvidia1 \ --device /dev/nvidia2:/dev/nvidia2 \ --device /dev/nvidia3:/dev/nvidia3 \ --device /dev/nvidia4:/dev/nvidia4 \ --device /dev/nvidia5:/dev/nvidia5 \ --device /dev/nvidia6:/dev/nvidia6 \ --device /dev/nvidia7:/dev/nvidia7 \ --device /dev/nvidia-uvm:/dev/nvidia-uvm \ --device /dev/nvidiactl:/dev/nvidiactl \ --device /dev/dmabuf_import_helper:/dev/dmabuf_import_helper \ --env LD_LIBRARY_PATH=/usr/local/nvidia/lib64 \ us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/tcpgpudmarxd-dev:v1.0.19 \ --num_hops=2 --num_nics=8Para verificar se o
RxDMfoi iniciado com êxito, execute o comando. Aguarde pela mensagem "Buffer manager initialization complete" para confirmar a inicialização bem-sucedida.RxDMdocker container logs --follow rxdm
Em alternativa, verifique o registo de conclusão da inicialização
RxDM.docker container logs rxdm 2>&1 | grep "Buffer manager initialization complete"
Configure o ambiente NCCL
Em cada VM A3 Mega, conclua os seguintes passos:
- Instale a biblioteca
nccl-net, um plug-in para o NCCL que permite a comunicação GPUDirect através da rede.O seguinte comando extrai a imagem do instalador e instala os ficheiros de biblioteca necessários em/var/lib/tcpxo/lib64/.NCCL_NET_IMAGE="us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpxo/nccl-plugin-gpudirecttcpx-dev:v1.0.13-1" docker run --pull=always --rm --privileged \ --network=host --cap-add=NET_ADMIN \ --volume /var/lib/nvidia:/usr/local/nvidia \ --volume /var/lib:/var/lib \ --device /dev/nvidia0:/dev/nvidia0 \ --device /dev/nvidia1:/dev/nvidia1 \ --device /dev/nvidia2:/dev/nvidia2 \ --device /dev/nvidia3:/dev/nvidia3 \ --device /dev/nvidia4:/dev/nvidia4 \ --device /dev/nvidia5:/dev/nvidia5 \ --device /dev/nvidia6:/dev/nvidia6 \ --device /dev/nvidia7:/dev/nvidia7 \ --device /dev/nvidia-uvm:/dev/nvidia-uvm \ --device /dev/nvidiactl:/dev/nvidiactl \ --device /dev/dmabuf_import_helper:/dev/dmabuf_import_helper \ --env LD_LIBRARY_PATH=/usr/local/nvidia/lib64:/var/lib/tcpxo/lib64 \ ${NCCL_NET_IMAGE} install --install-nccl sudo mount --bind /var/lib/tcpxo /var/lib/tcpxo && sudo mount -o remount,exec /var/lib/tcpxo - Inicie um contentor dedicado
nccl-testspara testes da NCCL. Este contentor é pré-configurado com as ferramentas e os scripts de utilidade necessários, o que garante um ambiente limpo e consistente para validar o desempenho da configuração do GPUDirect.Este comando reutiliza a variável
NCCL_NET_IMAGEque definiu no passo anterior.docker run --pull=always --rm --detach --name nccl \ --network=host --cap-add=NET_ADMIN \ --privileged \ --volume /var/lib/nvidia:/usr/local/nvidia \ --volume /var/lib/tcpxo:/var/lib/tcpxo \ --shm-size=8g \ --device /dev/nvidia0:/dev/nvidia0 \ --device /dev/nvidia1:/dev/nvidia1 \ --device /dev/nvidia2:/dev/nvidia2 \ --device /dev/nvidia3:/dev/nvidia3 \ --device /dev/nvidia4:/dev/nvidia4 \ --device /dev/nvidia5:/dev/nvidia5 \ --device /dev/nvidia6:/dev/nvidia6 \ --device /dev/nvidia7:/dev/nvidia7 \ --device /dev/nvidia-uvm:/dev/nvidia-uvm \ --device /dev/nvidiactl:/dev/nvidiactl \ --device /dev/dmabuf_import_helper:/dev/dmabuf_import_helper \ --env LD_LIBRARY_PATH=/usr/local/nvidia/lib64:/var/lib/tcpxo/lib64 \ ${NCCL_NET_IMAGE} daemon
Execute o teste de referência nccl-tests
Para executar o benchmark nccl-tests numa única VM A3 Mega, conclua os seguintes passos:
- Abra uma shell bash interativa no contentor
nccl-tests.docker exec -it nccl bash
- Configure o ambiente para uma execução de vários nós
configurando o SSH e gerando ficheiros de anfitriões. Substitua
VM_NAME_1eVM_NAME_2pelos nomes de cada MV./scripts/init_ssh.sh VM_NAME_1 VM_NAME_2 /scripts/gen_hostfiles.sh VM_NAME_1 VM_NAME_2
Isto cria um diretório com o nome
/scripts/hostfiles2. - Execute o teste de referência
all_gather_perfpara medir o desempenho da comunicação coletiva:/scripts/run-nccl-tcpxo.sh all_gather_perf "${LD_LIBRARY_PATH}" 8 eth1,eth2,eth3,eth4,eth5,eth6,eth7,eth8 1M 512M 3 2 10 8 2 10
A partir da shell bash do contentor nccl-tests, conclua os seguintes passos.
Crie instâncias A3 High e Edge (GPUDirect-TCPX)
Crie as suas instâncias A3 High e Edge usando a imagem do SO otimizado para contentores cos-121-lts ou posterior.
COS
Para testar o desempenho da rede com o GPUDirect-TCPX, tem de criar, pelo menos, duas VMs A3 High ou Edge. Crie cada VM usando a imagem do SO otimizado para contentores cos-121-lts ou posterior e especificando as redes VPC que criou no passo anterior.
As VMs têm de usar a interface de rede da NIC virtual da Google (gVNIC). Para VMs A3 High ou Edge, tem de usar a versão 1.4.0rc3 ou posterior do controlador gVNIC. Esta versão do controlador está disponível no SO otimizado para contentores. A primeira NIC virtual é usada como a NIC principal para rede e armazenamento gerais. As outras quatro NICs virtuais estão alinhadas com NUMA com duas das oito GPUs no mesmo comutador PCIe.
Com base no modelo de aprovisionamento que quer usar para criar a sua VM, selecione uma das seguintes opções:
Standard
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=ZONE \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE --restart-on-failure \
--image-family=cos-121-lts \
--image-project=cos-cloud \
--boot-disk-size=BOOT_DISK_SIZE \
--metadata=cos-update-strategy=update_disabled \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-mgmt-net,subnet=NETWORK_NAME_PREFIX-mgmt-sub \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-1,subnet=NETWORK_NAME_PREFIX-data-sub-1,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-2,subnet=NETWORK_NAME_PREFIX-data-sub-2,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-3,subnet=NETWORK_NAME_PREFIX-data-sub-3,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-4,subnet=NETWORK_NAME_PREFIX-data-sub-4,no-address
Substitua o seguinte:
VM_NAME: o nome da sua VM.PROJECT_ID: o ID do seu projeto.ZONE: uma zona que suporta o seu tipo de máquina.MACHINE_TYPE: o tipo de máquina para a VM. Especifiquea3-highgpu-8goua3-edgegpu-8g.BOOT_DISK_SIZE: o tamanho do disco de arranque em GB, por exemplo,50.NETWORK_NAME_PREFIX: o prefixo do nome a usar para as redes e as sub-redes da VPC.
Espaço
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=ZONE \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE --restart-on-failure \
--image-family=cos-121-lts \
--image-project=cos-cloud \
--boot-disk-size=BOOT_DISK_SIZE \
--metadata=cos-update-strategy=update_disabled \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-mgmt-net,subnet=NETWORK_NAME_PREFIX-mgmt-sub \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-1,subnet=NETWORK_NAME_PREFIX-data-sub-1,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-2,subnet=NETWORK_NAME_PREFIX-data-sub-2,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-3,subnet=NETWORK_NAME_PREFIX-data-sub-3,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-4,subnet=NETWORK_NAME_PREFIX-data-sub-4,no-address \
--provisioning-model=SPOT \
--instance-termination-action=TERMINATION_ACTION
Substitua o seguinte:
VM_NAME: o nome da sua VM.PROJECT_ID: o ID do seu projeto.ZONE: uma zona que suporta o seu tipo de máquina.MACHINE_TYPE: o tipo de máquina para a VM. Especifiquea3-highgpu-8goua3-edgegpu-8g.BOOT_DISK_SIZE: o tamanho do disco de arranque em GB, por exemplo,50.NETWORK_NAME_PREFIX: o prefixo do nome a usar para as redes e as sub-redes da VPC.TERMINATION_ACTION: se a VM deve ser parada ou eliminada na preempção. Especifique um dos seguintes valores:- Para parar a VM:
STOP - Para eliminar a VM:
DELETE
- Para parar a VM:
Flex-start
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=ZONE \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE --restart-on-failure \
--image-family=cos-121-lts \
--image-project=cos-cloud \
--boot-disk-size=BOOT_DISK_SIZE \
--metadata=cos-update-strategy=update_disabled \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-mgmt-net,subnet=NETWORK_NAME_PREFIX-mgmt-sub \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-1,subnet=NETWORK_NAME_PREFIX-data-sub-1,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-2,subnet=NETWORK_NAME_PREFIX-data-sub-2,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-3,subnet=NETWORK_NAME_PREFIX-data-sub-3,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-4,subnet=NETWORK_NAME_PREFIX-data-sub-4,no-address \
--provisioning-model=FLEX_START \
--instance-termination-action=TERMINATION_ACTION \
--max-run-duration=RUN_DURATION \
--request-valid-for-duration=VALID_FOR_DURATION \
--reservation-affinity=none
Substitua o seguinte:
VM_NAME: o nome da sua VM.PROJECT_ID: o ID do seu projeto.ZONE: uma zona que suporta o seu tipo de máquina.MACHINE_TYPE: o tipo de máquina da VM. Especifiquea3-highgpu-8goua3-edgegpu-8g.BOOT_DISK_SIZE: o tamanho do disco de arranque em GB, por exemplo,50.NETWORK_NAME_PREFIX: o prefixo do nome a usar para as redes e as sub-redes da VPC.TERMINATION_ACTION: se deve parar ou eliminar a VM no final da respetiva duração de execução. Especifique um dos seguintes valores:- Para parar a VM:
STOP - Para eliminar a VM:
DELETE
- Para parar a VM:
RUN_DURATION: o tempo máximo que a VM é executada antes de o Compute Engine a parar ou eliminar. Tem de formatar o valor como o número de dias, horas, minutos ou segundos, seguido ded,h,mes, respetivamente. Por exemplo, um valor de30mdefine um tempo de 30 minutos e um valor de1h2m3sdefine um tempo de uma hora, dois minutos e três segundos. Pode especificar um valor entre 10 minutos e sete dias.VALID_FOR_DURATION`: o tempo máximo de espera para o aprovisionamento dos recursos pedidos. Tem de formatar o valor como o número de dias, horas, minutos ou segundos seguido ded,h,mes, respetivamente. Com base nos requisitos zonais da sua carga de trabalho, especifique uma das seguintes durações para ajudar a aumentar as probabilidades de êxito do seu pedido de criação de VMs:- Se a sua carga de trabalho exigir que crie a VM numa zona específica, especifique uma duração
entre 90 segundos (
90s) e duas horas (2h). As durações mais longas dão-lhe maiores probabilidades de obter recursos. - Se a VM puder ser executada em qualquer zona na região, especifique uma duração de zero segundos
(
0s). Este valor especifica que o Compute Engine só atribui recursos se estiverem imediatamente disponíveis. Se o pedido de criação falhar porque os recursos estão indisponíveis, tente novamente o pedido numa zona diferente.
- Se a sua carga de trabalho exigir que crie a VM numa zona específica, especifique uma duração
entre 90 segundos (
Associado a reserva
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=ZONE \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE --restart-on-failure \
--image-family=cos-121-lts \
--image-project=cos-cloud \
--boot-disk-size=BOOT_DISK_SIZE \
--metadata=cos-update-strategy=update_disabled \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-mgmt-net,subnet=NETWORK_NAME_PREFIX-mgmt-sub \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-1,subnet=NETWORK_NAME_PREFIX-data-sub-1,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-2,subnet=NETWORK_NAME_PREFIX-data-sub-2,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-3,subnet=NETWORK_NAME_PREFIX-data-sub-3,no-address \
--network-interface=nic-type=GVNIC,network=NETWORK_NAME_PREFIX-data-net-4,subnet=NETWORK_NAME_PREFIX-data-sub-4,no-address \
--provisioning-model=RESERVATION_BOUND \
--instance-termination-action=TERMINATION_ACTION \
--reservation-affinity=specific \
--reservation=RESERVATION_URL
Substitua o seguinte:
VM_NAME: o nome da sua VM.PROJECT_ID: o ID do seu projeto.ZONE: uma zona que suporta o seu tipo de máquina.MACHINE_TYPE: o tipo de máquina para a VM. Especifiquea3-highgpu-8goua3-edgegpu-8g.BOOT_DISK_SIZE: o tamanho do disco de arranque em GB, por exemplo,50.NETWORK_NAME_PREFIX: o prefixo do nome a usar para as redes e as sub-redes da VPC.TERMINATION_ACTION: se deve parar ou eliminar a VM no final do período de reserva. Especifique um dos seguintes valores:- Para parar a VM:
STOP - Para eliminar a VM:
DELETE
- Para parar a VM:
RESERVATION_URL: o URL da reserva que quer consumir. Especifique um dos seguintes valores:- Se criou a reserva no mesmo projeto:
example-reservation - Se a reserva estiver num projeto diferente e
o seu projeto puder usá-la:
projects/PROJECT_ID/reservations/example-reservation.
- Se criou a reserva no mesmo projeto:
Instale controladores da GPU
Em cada VM A3 High ou Edge, conclua os passos seguintes.
- Instale os controladores da GPU NVIDIA executando o seguinte comando:
sudo cos-extensions install gpu -- --version=latest
- Volte a montar o caminho executando o seguinte comando:
sudo mount --bind /var/lib/nvidia /var/lib/nvidia sudo mount -o remount,exec /var/lib/nvidia
Conceda às NICs acesso às GPUs
Em cada VM A3 High ou Edge, conceda às NICs acesso às GPUs concluindo os seguintes passos:
- Configure a base de dados de registo.
- Se estiver a usar o Container Registry, execute o seguinte comando:
docker-credential-gcr configure-docker
- Se estiver a usar o Artifact Registry, execute o seguinte comando:
docker-credential-gcr configure-docker --registries us-docker.pkg.dev
- Se estiver a usar o Container Registry, execute o seguinte comando:
- Configure o gestor do caminho de receção de dados. Um serviço de gestão, o GPUDirect-TCPX Receive Data Path Manager, tem de ser executado juntamente com as aplicações que usam o GPUDirect-TCPX. Para iniciar o serviço
em cada VM do SO otimizado para contentores, execute o seguinte comando:
docker run --pull=always --rm \ --name receive-datapath-manager \ --detach \ --privileged \ --cap-add=NET_ADMIN --network=host \ --volume /var/lib/nvidia/lib64:/usr/local/nvidia/lib64 \ --device /dev/nvidia0:/dev/nvidia0 \ --device /dev/nvidia1:/dev/nvidia1 \ --device /dev/nvidia2:/dev/nvidia2 \ --device /dev/nvidia3:/dev/nvidia3 \ --device /dev/nvidia4:/dev/nvidia4 \ --device /dev/nvidia5:/dev/nvidia5 \ --device /dev/nvidia6:/dev/nvidia6 \ --device /dev/nvidia7:/dev/nvidia7 \ --device /dev/nvidia-uvm:/dev/nvidia-uvm \ --device /dev/nvidiactl:/dev/nvidiactl \ --env LD_LIBRARY_PATH=/usr/local/nvidia/lib64 \ --volume /run/tcpx:/run/tcpx \ --entrypoint /tcpgpudmarxd/build/app/tcpgpudmarxd \ us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/tcpgpudmarxd \ --gpu_nic_preset a3vm --gpu_shmem_type fd --uds_path "/run/tcpx" --setup_param "--verbose 128 2 0" - Verifique se o contentor
receive-datapath-managerfoi iniciado.docker container logs --follow receive-datapath-manager
O resultado deve ser semelhante ao seguinte:
I0000 00:00:1687813309.406064 1 rx_rule_manager.cc:174] Rx Rule Manager server(s) started...
- Para parar de ver os registos, prima
ctrl-c. - Instale regras de tabela de IP.
sudo iptables -I INPUT -p tcp -m tcp -j ACCEPT
- Configure a NVIDIA Collective Communications Library (NCCL)
e o plug-in GPUDirect-TCPX.
É necessária uma combinação específica da versão da biblioteca NCCL e do binário do plugin GPUDirect-TCPX para usar o NCCL com suporte do GPUDirect-TCPX.A Google Cloud forneceu pacotes que cumprem este requisito.
Para instalar o pacote Google Cloud , execute o seguinte comando:
docker run --rm -v /var/lib:/var/lib us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/nccl-plugin-gpudirecttcpx install --install-nccl sudo mount --bind /var/lib/tcpx /var/lib/tcpx sudo mount -o remount,exec /var/lib/tcpx
Se este comando for bem-sucedido, os ficheiros
libnccl-net.soelibnccl.sosão colocados no diretório/var/lib/tcpx/lib64.
Execute testes
Em cada VM A3 High ou Edge, execute um teste NCCL concluindo os seguintes passos:
- Inicie o contentor.
#!/bin/bash function run_tcpx_container() { docker run \ -u 0 --network=host \ --cap-add=IPC_LOCK \ --userns=host \ --volume /run/tcpx:/tmp \ --volume /var/lib/nvidia/lib64:/usr/local/nvidia/lib64 \ --volume /var/lib/tcpx/lib64:/usr/local/tcpx/lib64 \ --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 \ --device /dev/nvidia0:/dev/nvidia0 \ --device /dev/nvidia1:/dev/nvidia1 \ --device /dev/nvidia2:/dev/nvidia2 \ --device /dev/nvidia3:/dev/nvidia3 \ --device /dev/nvidia4:/dev/nvidia4 \ --device /dev/nvidia5:/dev/nvidia5 \ --device /dev/nvidia6:/dev/nvidia6 \ --device /dev/nvidia7:/dev/nvidia7 \ --device /dev/nvidia-uvm:/dev/nvidia-uvm \ --device /dev/nvidiactl:/dev/nvidiactl \ --env LD_LIBRARY_PATH=/usr/local/nvidia/lib64:/usr/local/tcpx/lib64 \ "$@" }O comando anterior conclui o seguinte:
- Monta dispositivos NVIDIA de
/devno contentor - Define o espaço de nomes de rede do contentor para o anfitrião
- Define o espaço de nomes do utilizador do contentor como anfitrião
- Adiciona
CAP_IPC_LOCKàs capacidades do contentor - Monta
/tmpdo anfitrião em/tmpdo contentor - Monta o caminho de instalação do NCCL e do plug-in NCCL GPUDirect-TCPX no contentor e adiciona o caminho montado a
LD_LIBRARY_PATH
- Monta dispositivos NVIDIA de
- Depois de iniciar o contentor, as aplicações que usam a NCCL podem ser executadas a partir do interior do contentor. Por exemplo, para executar o teste
run-allgather, conclua os seguintes passos:- Em cada VM A3 High ou Edge, execute o seguinte:
$ run_tcpx_container -it --rm us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/nccl-plugin-gpudirecttcpx shell
- Numa VM, execute os seguintes comandos:
- Configure a ligação entre as VMs. Substitua
VM-0eVM-1pelos nomes de cada MV./scripts/init_ssh.sh VM-0 VM-1 pushd /scripts && /scripts/gen_hostfiles.sh VM-0 VM-1; popd
Esta ação cria um diretório
/scripts/hostfiles2em cada VM. - Execute o script.
/scripts/run-allgather.sh 8 eth1,eth2,eth3,eth4 1M 512M 2
- Configure a ligação entre as VMs. Substitua
A execução do script
run-allgatherdemora cerca de dois minutos. No final dos registos, são apresentados os resultadosall-gather.Se vir a seguinte linha nos registos da NCCL, isto confirma que o GPUDirect-TCPX foi inicializado com êxito.
NCCL INFO NET/GPUDirectTCPX ver. 3.1.1.
- Em cada VM A3 High ou Edge, execute o seguinte:
GPU de várias instâncias
Uma GPU de várias instâncias divide uma única GPU NVIDIA H100 na mesma VM em até sete instâncias de GPU independentes. São executados em simultâneo, cada um com a sua própria memória, cache e multiprocessadores de streaming. Esta configuração permite que a GPU NVIDIA H100 ofereça uma qualidade de serviço (QoS) consistente com uma utilização até 7 vezes superior em comparação com modelos de GPU anteriores.
Pode criar até sete GPUs multi-instância. Com as GPUs H100 de 80 GB, cada GPU multi-instância tem 10 GB de memória atribuídos.
Para mais informações sobre a utilização de GPUs multi-instância, consulte o guia do utilizador de GPUs multi-instância da NVIDIA.
Para criar GPUs multi-instância, conclua os seguintes passos:
Crie as suas instâncias A3 Mega, A3 High ou A3 Edge.
Instale os controladores da GPU.
Ative o modo MIG. Para ver instruções, consulte o artigo Ative a MIG.
Configure as partições da GPU. Para ver instruções, consulte o artigo Trabalhe com partições de GPU.