Executando uma AMIs de deep learning da AWS instância com EFA - AMIs de deep learning da AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Executando uma AMIs de deep learning da AWS instância com EFA

O Base mais recente DLAMI está pronto para uso EFA e vem com os drivers necessários, módulos de kernel, libfabric, openmpi e o NCCL OFI plug-in para instâncias. GPU

Você pode encontrar as CUDA versões suportadas de um Base DLAMI nas notas de lançamento.

Nota:

  • Ao executar um NCCL aplicativo usando mpirun onEFA, você precisará especificar o caminho completo para a instalação EFA suportada como:

    /opt/amazon/openmpi/bin/mpirun <command>
  • Para permitir que seu aplicativo seja usadoEFA, adicione FI_PROVIDER="efa" ao mpirun comando conforme mostrado emUsando EFA no DLAMI.

Preparar um grupo de segurança habilitado para o EFA

EFArequer um grupo de segurança que permita todo o tráfego de entrada e saída de e para o próprio grupo de segurança. Para obter mais informações, consulte a EFAdocumentação.

  1. Abra o EC2 console da Amazon em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Security Groups (Grupos de segurança) e, em seguida, Create Security Group (Criar grupo de segurança).

  3. Na janela Security group, faça o seguinte:

    • Em Security group name (Nome do grupo de segurança), insira um nome descritivo para o grupo de segurança, como EFA-enabled security group.

    • (Opcional) Em Description (Descrição), insira uma breve descrição do grupo de segurança.

    • Para VPC, selecione aquela VPC na qual você pretende executar suas instâncias EFA habilitadas.

    • Escolha Criar.

  4. Selecione o grupo de segurança que você criou e, na guia Description (Descrição), copie o Group ID (ID do grupo).

  5. Nas guias Entrada e Saída, faça o seguinte:

    • Selecione Edit.

    • Para Type (Tipo), escolha All traffic (Todo o tráfego).

    • Em Source, escolha Custom.

    • Cole o ID do grupo de segurança que você copiou no campo.

    • Escolha Salvar.

  6. Habilite o tráfego de entrada fazendo referência a Autorizar tráfego de entrada para as instâncias do Linux. Se você pular essa etapa, não conseguirá se comunicar com sua DLAMI instância.

Executar sua instância

EFAno momento, o on the AMIs de deep learning da AWS é compatível com os seguintes tipos de instância e sistemas operacionais:

  • P3DN.24xlarge: Amazon Linux 2, Ubuntu 20.04

  • P4D.24xlarge: Amazon Linux 2, Ubuntu 20.04

  • P5.48xlarge: Amazon Linux 2, Ubuntu 20.04

A seção a seguir mostra como iniciar uma DLAMI instância EFA habilitada. Para obter mais informações sobre como iniciar uma instância EFA habilitada, consulte Launch EFA -Enabled Instances into a Cluster Placement Group.

  1. Abra o EC2 console da Amazon em https://console.aws.amazon.com/ec2/.

  2. Escolha Executar instância.

  3. Na AMI página Escolha um, selecione um suporte DLAMI encontrado na página de notas de DLAMI versão

  4. Na página Escolher um tipo de instância, selecione um dos seguintes tipos de instância com suporte e escolha Próximo: Configurar os detalhes da instância. Consulte este link para ver a lista de instâncias compatíveis: Comece com EFA e MPI

  5. Na página Configure Instance Details (Configurar detalhes da instância), faça o seguinte:

    • Em Número de instâncias, insira o número de instâncias EFA habilitadas que você deseja iniciar.

    • Em Rede e sub-rede, selecione a sub-rede VPC e na qual executar as instâncias.

    • [Opcional] Em Grupo de posicionamento, selecione Adicionar instância ao grupo de posicionamento. Para obter o melhor desempenho, execute as instâncias dentro de um placement group.

    • [Opcional] Em Nome do grupo de posicionamento, selecione Adicionar a um novo grupo de posicionamento, insira um nome descritivo para o grupo de posicionamento e, em seguida, em Estratégia do grupo de posicionamento, selecione cluster.

    • Habilite o “Elastic Fabric Adapter” nesta página. Se esta opção estiver desabilitada, altere a sub-rede para uma que ofereça suporte ao tipo de instância selecionado.

    • Na seção Interfaces de rede, para dispositivo eth0, escolha Nova interface de rede. Opcionalmente, você pode especificar um IPv4 endereço principal e um ou mais IPv4 endereços secundários. Se você estiver iniciando a instância em uma sub-rede que tenha um IPv6 CIDR bloco associado, você pode especificar opcionalmente um IPv6 endereço primário e um ou mais endereços secundáriosIPv6.

    • Escolha Next: Add Storage (Próximo: adicionar armazenamento).

  6. Na página Adicionar armazenamento, especifique os volumes a serem anexados às instâncias, além dos volumes especificados pelo AMI (como o volume do dispositivo raiz) e escolha Avançar: Adicionar tags.

  7. Na página Adicionar tags, especifique tags para as instâncias, como nome amigável, e selecione Próximo: Configurar grupo de segurança.

  8. Na página Configurar grupo de segurança, em Atribuir um grupo de segurança, selecione Selecionar um grupo de segurança existente e, em seguida, selecione o grupo de segurança que você criou anteriormente.

  9. Escolha revisar e iniciar.

  10. Na página Revisar execução da instância, reveja as configurações, e escolha Executar para escolher um par de chaves e executar a instâncias.

Verificar anexo do EFA

No console

Depois de iniciar a instância, verifique os detalhes da instância no AWS console. Para fazer isso, selecione a instância no EC2 console e veja a guia Descrição no painel inferior da página. Encontre o parâmetro "Network Interfaces: eth0" e clique em eth0 e um pop-up será aberto. O “Elastic Fabric Adapter” deve estar habilitado.

Se não EFA estiver ativado, você pode corrigir isso da seguinte maneira:

  • Encerrar a EC2 instância e iniciar uma nova com as mesmas etapas. Certifique-se de que o EFA esteja anexado.

  • Anexe o EFA a uma instância existente.

    1. No EC2 console, vá para Interfaces de rede.

    2. Clique em "Criar uma interface de rede".

    3. Selecione a mesma sub-rede na qual está sua instância.

    4. Habilite o "Elastic Fabric Adapter" e clique em Criar.

    5. Volte para a guia EC2 Instâncias e selecione sua instância.

    6. Vá para Ações: Estado da instância e interrompa a instância antes de anexarEFA.

    7. Em "Ações", selecione "Rede: Anexar Interface de Rede".

    8. Selecione a interface que você acabou de criar e clique em associar.

    9. Reinicie sua instância.

Na instância

O script de teste a seguir já está presente noDLAMI. Execute-o para garantir que os módulos do kernel sejam carregados corretamente.

$ fi_info -p efa

O resultado deve ser semelhante ao seguinte:

provider: efa fabric: EFA-fe80::e5:56ff:fe34:56a8 domain: efa_0-rdm version: 2.0 type: FI_EP_RDM protocol: FI_PROTO_EFA provider: efa fabric: EFA-fe80::e5:56ff:fe34:56a8 domain: efa_0-dgrm version: 2.0 type: FI_EP_DGRAM protocol: FI_PROTO_EFA provider: efa;ofi_rxd fabric: EFA-fe80::e5:56ff:fe34:56a8 domain: efa_0-dgrm version: 1.0 type: FI_EP_RDM protocol: FI_PROTO_RXD

Verificar a configuração do grupo de segurança

O script de teste a seguir já está presente noDLAMI. Execute-o para garantir que o grupo de segurança criado esteja configurado corretamente.

$ cd /opt/amazon/efa/test/ $ ./efa_test.sh

O resultado deve ser semelhante ao seguinte:

Starting server... Starting client... bytes #sent #ack total time MB/sec usec/xfer Mxfers/sec 64 10 =10 1.2k 0.02s 0.06 1123.55 0.00 256 10 =10 5k 0.00s 17.66 14.50 0.07 1k 10 =10 20k 0.00s 67.81 15.10 0.07 4k 10 =10 80k 0.00s 237.45 17.25 0.06 64k 10 =10 1.2m 0.00s 921.10 71.15 0.01 1m 10 =10 20m 0.01s 2122.41 494.05 0.00

Se ele parar de responder ou não for concluído, verifique se o grupo de segurança tem as regras corretas de entrada/saída.