Uso de AMIs aceleradas e otimizadas para o EKS em instâncias de GPU - Amazon EKS

Ajudar a melhorar esta página

Para contribuir com este guia de usuário, escolha o link Editar esta página no GitHub, disponível no painel direito de cada página.

Uso de AMIs aceleradas e otimizadas para o EKS em instâncias de GPU

O Amazon EKS oferece suporte a AMIs do Amazon Linux e do Bottlerocket otimizadas para o EKS em instâncias de GPU. As AMIs aceleradas e otimizadas para o EKS simplificam a execução de workloads de IA e de ML em clusters do EKS ao fornecer imagens de sistemas operacionais previamente integradas e validadas para a pilha acelerada do Kubernetes. Além dos componentes principais do Kubernetes incluídos nas AMIs otimizadas para o EKS padrão, as AMIs aceleradas e otimizadas para o EKS incluem os módulos de kernel e os drivers necessários para executar as instâncias de GPU do EC2 para a NVIDIA nas famílias G e P e as instâncias de GPU do EC2 para a AWS no Inferentia e no Trainium em clusters do EKS.

A tabela abaixo apresenta os tipos de instâncias de GPU compatíveis com cada uma das variantes de AMIs aceleradas e otimizadas para o EKS. Consulte os lançamentos do AL2023 e os lançamentos do Bottlerocket otimizados para o EKS no GitHub para obter as atualizações mais recentes das variantes de AMI.

Variante de AMI do EKS Tipos de instâncias do EC2

AL2023 x86_64 NVIDIA

p6-b300, p6-b200, p5, p5e, p5en, p4d, p4de, p3, p3dn, gr6, g6, g6e, g6f, gr6f, g5 e g4dn

AL2023 ARM NVIDIA

p6e-gb200 e g5g

AL2023 x86_64 Neuron

inf1, inf2, trn1 e trn2

Bottlerocket x86_64 aws-k8s-nvidia

p6-b300, p6-b200, p5, p5e, p5en, p4d, p4de, p3, p3dn, gr6, g6, g6e, g6f, gr6f, g5 e g4dn

Bottlerocket aarch64/arm64 aws-k8s-nvidia

g5g

Bottlerocket x86_64 aws-k8s

inf1, inf2, trn1 e trn2

AMIs da NVIDIA otimizadas para o EKS

Ao usar as AMIs da NVIDIA otimizadas para o EKS, você concorda com o Contrato de Licença de Usuário Final (EULA, na sigla em inglês) da NVIDIA para uso da nuvem.

Para encontrar as AMIs da NVIDIA otimizadas para o EKS mais recentes, consulte Recuperar IDs de AMI do Amazon Linux recomendadas e Recuperar IDs da AMI do Bottlerocket recomendadas.

Ao usar o Amazon Elastic Fabric Adaptor (EFA) com as AMIs da NVIDIA otimizadas para o EKS com o AL2023 ou o Bottlerocket, você deve instalar o plug-in de dispositivo de EFA separadamente. Para obter mais informações, consulte Execute o treinamento de machine learning no Amazon EKS com o Elastic Fabric Adapter.

AMIs da NVIDIA para o EKS no AL2023

Ao usar o NVIDIA GPU Operator com as AMIs do AL2023 otimizadas para EKS com a NVIDIA, você deve desabilitar a instalação do driver e do toolkit pelo operador, pois estes já estão incluídos na AMI para o EKS. As AMIs do AL2023 otimizadas para o EKS com a NVIDIA não incluem o plug-in de dispositivo da NVIDIA para Kubernetes ou o driver de DRA da NVIDIA. Portanto, estes devem ser instalados separadamente. Para obter mais informações, consulte Instalação do plug-in de dispositivos da NVIDIA para Kubernetes.

Além dos componentes padrão na AMI do EKS, as AMIs da NVIDIA otimizadas para o EKS no AL2023 incluem os componentes apresentados a seguir.

  • Driver NVIDIA

  • Driver de modo de usuário do NVIDIA CUDA

  • NVIDIA Container Toolkit

  • NVIDIA Fabric Manager

  • Daemon “nvidia-persistenced”

  • Driver de IMEX da NVIDIA

  • Gerenciador de sub-rede NVIDIA NVLink

  • EFA mínimo (contendo módulo de kernel e rdma-core)

Para obter detalhes sobre o driver de modo de usuário do NVIDIA CUDA e o runtime ou as bibliotecas do CUDA usados em contêineres de aplicações, consulte a documentação da NVIDIA. A versão do CUDA que o comando nvidia-smi mostra refere-se ao driver de modo de usuário do NVIDIA CUDA instalado no host. Essa versão precisa ser compatível com o runtime e com as bibliotecas do CUDA que as aplicações usam nos contêineres.

As AMIs da NVIDIA otimizadas para o EKS no AL2023 oferecem suporte ao kernel 6.12 para a versão 1.33 e para versões posteriores do Kubernetes, bem como à versão 580 do driver da NVIDIA para todas as versões do Kubernetes. O uso do CUDA 13 ou de suas versões posteriores requer a instalação do driver 580 da NVIDIA.

Consulte os lançamentos do AL2023 otimizados para o EKS no GitHub para obter detalhes das versões dos componentes incluídas nas AMIs. Consulte o script de instalação e o script de carregamento do kernel das AMIs da NVIDIA para o EKS no AL2023 para obter detalhes sobre como as AMIs do EKS configuram as dependências da NVIDIA. É possível encontrar a lista de pacotes instalados e suas versões em uma instância do EC2 em execução com o comando dnf list installed.

Ao criar AMIs personalizadas usando AMIs otimizadas para o EKS como base, não é recomendado nem suportado executar uma atualização do sistema operacional (por exemplo, dnf upgrade) ou atualizar qualquer um dos pacotes do Kubernetes ou de GPU incluídos nas AMIs otimizadas para o EKS, pois isso pode comprometer a compatibilidade entre os componentes. Se você optar por atualizar o sistema operacional ou os pacotes incluídos nas AMIs otimizadas para o EKS, é recomendável realizar testes completos em um ambiente de desenvolvimento ou de preparação antes da implantação em um ambiente de produção.

Ao criar AMIs personalizadas para instâncias de GPU, recomenda-se desenvolver AMIs personalizadas distintas para cada geração e família de instâncias que você pretende executar. As AMIs aceleradas e otimizadas para o EKS realizam a instalação seletiva de drivers e pacotes durante o runtime, de acordo com a geração e a família do tipo de instância subjacente. Para obter mais informações, consulte os scripts de instalação e de runtime das AMIs do EKS.

AMIs da NVIDIA para o EKS no Bottlerocket

Ao usar o NVIDIA GPU Operator com as AMIs do Bottlerocket otimizadas para EKS com a NVIDIA, você deve desabilitar a instalação do driver, do toolkit e do plug-in de dispositivo pelo operador, pois estes já estão incluídos na AMI para o EKS.

Além dos componentes padrão na AMI do EKS, as AMIs da NVIDIA otimizadas para o EKS no Bottlerocket incluem os componentes apresentados a seguir. As dependências mínimas para EFA (contendo módulo do kernel e rdma-core) estão instaladas em todas as variantes do Bottlerocket.

  • Plug-in de dispositivos da NVIDIA para Kubernetes

  • Driver NVIDIA

  • Driver de modo de usuário do NVIDIA CUDA

  • NVIDIA Container Toolkit

  • NVIDIA Fabric Manager

  • Daemon “nvidia-persistenced”

  • Driver de IMEX da NVIDIA

  • Gerenciador de sub-rede NVIDIA NVLink

  • Gerenciador de MIG da NVIDIA

Para obter detalhes sobre o driver de modo de usuário do NVIDIA CUDA e o runtime ou as bibliotecas do CUDA usados em contêineres de aplicações, consulte a documentação da NVIDIA. A versão do CUDA que o comando nvidia-smi mostra refere-se ao driver de modo de usuário do NVIDIA CUDA instalado no host. Essa versão precisa ser compatível com o runtime e com as bibliotecas do CUDA que as aplicações usam nos contêineres.

Consulte as informações da versão do Bottlerocket na documentação do Bottlerocket para obter detalhes sobre os pacotes instalados e suas versões. As AMIs da NVIDIA otimizadas para o EKS no Bottlerocket oferecem suporte ao kernel 6.12 para a versão 1.33 e para versões posteriores do Kubernetes, bem como à versão 580 do driver da NVIDIA na versão 1.34 e em versões posteriores do Kubernetes. O uso do CUDA 13 ou de suas versões posteriores requer a instalação do driver 580 da NVIDIA.

AMIs do Neuron otimizadas para o EKS

Para obter detalhes sobre como executar workloads de treinamento e de inferência usando o Neuron com o Amazon EKS, consulte as seguintes referências:

Para encontrar as AMIs do Neuron otimizadas para o EKS mais recentes, consulte Recuperar IDs de AMI do Amazon Linux recomendadas e Recuperar IDs da AMI do Bottlerocket recomendadas.

Ao usar o Amazon Elastic Fabric Adaptor (EFA) com as AMIs do Neuron otimizadas para o EKS com o AL2023 ou o Bottlerocket, você deve instalar o plug-in de dispositivo de EFA separadamente. Para obter mais informações, consulte Execute o treinamento de machine learning no Amazon EKS com o Elastic Fabric Adapter.

AMIs do Neuron para o EKS no AL2023

As AMIs do Neuron otimizadas para o EKS no AL2023 não incluem o plug-in de dispositivo do Neuron para o Kubernetes nem a extensão de agendador do Neuron para Kubernetes, sendo necessário instalá-los separadamente. Para obter mais informações, consulte Instalação do plug-in de dispositivos do Neuron para Kubernetes.

Além dos componentes padrão na AMI do EKS, as AMIs do Neuron otimizadas para o EKS no AL2023 incluem os componentes apresentados a seguir.

  • Driver do Neuron (aws-neuronx-dkms)

  • Ferramentas do Neuron (aws-neuronx-tools)

  • EFA mínimo (contendo módulo de kernel e rdma-core)

Consulte o script de instalação da AMI do Neuron para o EKS no AL2023 para obter detalhes sobre como as AMIs do EKS configuram as dependências do Neuron. Consulte os lançamentos do AL2023 otimizados para o EKS no GitHub para verificar as versões dos componentes incluídas nas AMIs. É possível encontrar a lista de pacotes instalados e suas versões em uma instância do EC2 em execução com o comando dnf list installed.

AMIs do Neuron para o EKS no Bottlerocket

As variantes padrão do Bottlerocket (aws-k8s) incluem as dependências do Neuron, que são automaticamente detectadas e carregadas ao serem executadas em instâncias do EC2 no AWS Inferentia ou Trainium.

As AMIs otimizadas para o EKS no Bottlerocket não incluem o plug-in de dispositivo do Neuron para o Kubernetes nem a extensão de agendador do Neuron para Kubernetes, sendo necessário instalá-los separadamente. Para obter mais informações, consulte Instalação do plug-in de dispositivos do Neuron para Kubernetes.

Além dos componentes padrão na AMI do EKS, as AMIs do Neuron otimizadas para o EKS no Bottlerocket incluem os componentes apresentados a seguir.

  • Driver do Neuron (aws-neuronx-dkms)

  • EFA mínimo (contendo módulo de kernel e rdma-core)

Ao usar as AMIs otimizadas para o EKS no Bottlerocket com instâncias do Neuron, as configurações a seguir devem ser realizadas nos dados do usuário do Bottlerocket. Essa configuração permite que o contêiner assuma a propriedade do dispositivo do Neuron montado com base nos valores runAsUser e runAsGroup fornecidos na especificação da workload. Para obter mais informações sobre o suporte ao Neuron no Bottlerocket, consulte o arquivo README de Quickstart on EKS no GitHub.

[settings] [settings.kubernetes] device-ownership-from-security-context = true

Consulte o Bottlerocket kernel kit changelog para obter informações sobre a versão do driver do Neuron incluída nas AMIs otimizadas para o EKS no Bottlerocket.