

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 o EFA
<a name="tutorial-efa-launching"></a>

A DLAMI base mais recente está pronta para usar o EFA e vem com os drivers, os módulos do kernel, libfabric, openmpi e o [plug-in OFI NCCL](https://github.com/aws/aws-ofi-nccl/tree/aws) necessários para instâncias de GPU.

Você pode encontrar as versões do CUDA compatíveis de uma DLAMI base nas [notas de versão.](appendix-ami-release-notes.md#appendix-ami-release-notes-base)

Observação:
+ Ao executar um aplicativo NCCL usando `mpirun` no EFA, será necessário especificar o caminho completo para as instalações do EFA com suporte como: 

  ```
  /opt/amazon/openmpi/bin/mpirun <command>  
  ```
+ Para habilitar seu aplicativo para usar o EFA, adicione `FI_PROVIDER="efa"` ao comando `mpirun` como mostrado em [Uso do EFA na DLAMI](tutorial-efa-using.md).

**Topics**
+ [Preparar um grupo de segurança habilitado para o EFA](#tutorial-efa-security-group)
+ [Executar sua instância](#tutorial-efa-launch)
+ [Verificar anexo do EFA](#tutorial-efa-verify-attachment)

## Preparar um grupo de segurança habilitado para o EFA
<a name="tutorial-efa-security-group"></a>

O EFA requer um grupo de segurança que permita todo o tráfego recebido do grupo de segurança e enviado para ele. Para ter mais informações, consulte a [Documentação do EFA](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa-start.html#efa-start-security).

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/). 

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

1. 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. 
   + Em **VPC**, selecione a VPC na qual você pretende executar suas instâncias habilitadas para EFA. 
   + Escolha **Criar**. 

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

1. 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**. 

1. Habilite o tráfego de entrada fazendo referência a [Autorizar tráfego de entrada para as instâncias do Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/authorizing-access-to-an-instance.html). Se ignorar esta etapa, você não poderá se comunicar com sua instância da DLAMI.

## Executar sua instância
<a name="tutorial-efa-launch"></a>

Atualmente, o EFA no AMIs de deep learning da AWS é compatível com os seguintes tipos de instância e sistemas operacionais:
+  P3dn: Amazon Linux 2, Ubuntu 20.04
+  P4d, P4de: Amazon Linux 2, Amazon Linux 2023, Ubuntu 20.04, Ubuntu 22.04
+  P5, P5e, P5en: Amazon Linux 2, Amazon Linux 2023, Ubuntu 20.04, Ubuntu 22.04

A seção a seguir mostra como iniciar uma instância da DLAMI habilitada para EFA. Para obter mais informações sobre executar uma instância habilitada para EFA, consulte [Executar instâncias habilitadas para EFA em um grupo com posicionamento em cluster](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa-start.html#efa-start-instances).

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/). 

1. Escolha **Executar instância**. 

1. Na página **Escolha uma AMI**, selecione uma DLAMI compatível encontrada na [página de notas de versão de DLAMIs](https://docs.aws.amazon.com/dlami/latest/devguide/appendix-ami-release-notes). 

1. 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 acessar a lista de instâncias compatíveis: [Conceitos básicos do EFA e MPI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa-start.html). 

1. Na página **Configurar detalhes da instância**, faça o seguinte: 
   + Em **Number of instances (Número de instâncias)**, insira o número de instâncias habilitadas para EFA que você deseja executar. 
   + Em **Rede** e **Sub-rede**, selecione a VPC e a sub-rede 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 **Estratégia de 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 bloco IPv6 CIDR associado, você pode especificar opcionalmente um IPv6 endereço primário e um ou mais endereços secundários. IPv6 
   + Escolha **Next: Add Storage**. 

1. Na página **Add Storage (Adicionar armazenamento)**, especifique os volumes para anexar às instâncias em associação aos volumes especificados pela AMI (como o volume do dispositivo raiz) e escolha **Next: Add Tags (Próximo: adicionar tags)**. 

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

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

1. Escolha **revisar e iniciar**. 

1. 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
<a name="tutorial-efa-verify-attachment"></a>

### No console
<a name="tutorial-efa-verify-attachment-console"></a>

Depois de iniciar a instância, verifique os detalhes da instância no AWS console. Para fazer isso, selecione a instância no console do EC2 e observe 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 o EFA não estiver habilitado, você poderá corrigir isso da seguinte forma:
+ Encerre a instância do EC2 e execute uma nova com as mesmas etapas. Verifique se o EFA está associado. 
+ Associe o EFA a uma instância existente.

  1. No console do EC2, acesse "Interfaces de rede".

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

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

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

  1. Volte para a guia "Instâncias do EC2" e selecione sua instância.

  1. Acesse Ações: estado da instância e interrompa a instância antes de anexar o EFA.

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

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

  1. Reinicie sua instância.

### Na instância
<a name="tutorial-efa-verify-attachment-instance"></a>

O script de teste a seguir já está presente na DLAMI. 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
<a name="tutorial-efa-verify-attachment-security"></a>

O script de teste a seguir já está presente na DLAMI. 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, certifique-se de que seu grupo de segurança tenha as inbound/outbound regras corretas. 