Sobre as opções de consumo de aceleradores para cargas de trabalho de IA/ML no GKE

Nesta página, descrevemos as técnicas disponíveis que podem ser usadas para obter aceleradores de computação, como GPUs ou TPUs, com base nos requisitos das cargas de trabalho de IA/ML. Essas técnicas são chamadas de opções de consumo de acelerador no GKE. Entender as diferentes opções de consumo ajuda a otimizar a utilização de recursos para evitar a subutilização, aumentar a probabilidade de obter recursos e equilibrar custo e desempenho.

Esta página é destinada a administradores e operadores de plataforma que coordenam com engenheiros de machine learning (ML) para conseguir os recursos necessários para implantar cargas de trabalho de IA/ML.

Para saber mais sobre papéis comuns e exemplos de tarefas que mencionamos no conteúdo do Google Cloud , consulte Funções e tarefas comuns do usuário do GKE.

Entender as opções de consumo

É possível escolher entre as seguintes opções para consumir aceleradores no GKE:

  • On demand:você consome TPUs ou GPUs no GKE sem organizar a capacidade com antecedência. Antes de solicitar recursos, você precisa ter cota sob demanda suficiente para o tipo e a quantidade específicos de aceleradores. A opção on demand é a mais flexível, mas não há garantia de que recursos suficientes estarão disponíveis para atender à sua solicitação.
  • Reservas:você reserva recursos por um período definido. Uma reserva pode ser qualquer uma das seguintes opções:
    • Reservas adiantadas:você reserva recursos por períodos normalmente mais longos para um horário específico no futuro. Você tem acesso exclusivo aos recursos reservados durante esse período. As reservas adiantadas exigem interação com um gerente técnico de contas (TAM). Para mais informações, consulte as orientações sobre TPU e GPU.
    • Reservas adiantadas por até 90 dias (no modo de calendário): você solicita capacidade para um período especificado, com um consultor de calendário sugerindo datas disponíveis. As reservas adiantadas por até 90 dias (no modo de calendário) oferecem mais flexibilidade para durações mais curtas e pesquisa de capacidade de autoatendimento. Para mais informações, consulte Solicitações de reserva adiantada no modo de calendário.
    • Reservas imediatas:é possível solicitar que uma reserva imediata seja provisionada assim que a capacidade estiver disponível, de forma semelhante à opção imediata. Enquanto a reserva estiver ativa, você vai pagar pelos recursos, mesmo que não os use.
  • Início flexível:você garante recursos alocados de forma densa para cargas de trabalho de curta duração sem uma reserva. Você solicita um número específico de GPUs ou TPUs, e o Compute Engine as provisiona quando a capacidade fica disponível. As GPUs ou TPUs são executadas sem interrupções por até sete dias. Para mais informações, consulte provisionamento de início flexível.
  • Spot:você provisiona VMs spot, o que permite receber descontos significativos, mas elas podem ser interrompidas a qualquer momento, com um aviso de 30 segundos. Para mais informações, consulte VMs spot.

Para otimizar o sucesso do provisionamento em restrições de recursos de computação, você pode orquestrar essas opções usando ComputeClasses.

Entender a cota de aceleradores no GKE

As cotas e os limites do sistema restringem o uso de recursos do Google Cloud para manter a disponibilidade de recursos para todos os usuários do Google Cloud . As cotas têm valores padrão, mas geralmente é possível solicitar ajustes. Os limites do sistema são valores fixos que não podem ser alterados. Por padrão, os projetos geralmente não vêm com uma cota significativa de aceleradores. É preciso solicitar e receber aprovação de cota para tipos e regiões de aceleradores específicos.

Considere as seguintes características ao gerenciar as cotas necessárias para suas cargas de trabalho:

  • Você precisa solicitar a cota necessária para cada opção de consumo. Para identificar a cota necessária para cada opção de consumo, consulte os parâmetros de "Cota" correspondentes listados na tabela Escolher uma opção de consumo. Se não houver cota suficiente, as tentativas de criar clusters, pools de nós ou implantar cargas de trabalho que exigem aceleradores vão falhar com um erro Quota exceeded.

  • É necessário solicitar cota ao usar ComputeClasses personalizadas no Autopilot. Os nós provisionados para atender aos requisitos da ComputeClass ainda consomem a cota do seu projeto para os aceleradores especificados.

  • Google Cloud As contas de teste sem custo financeiro têm limitações para solicitar aumentos de cota para recursos de alto valor, como GPUs e TPUs. Para ter acesso à cota de aceleradores, faça upgrade para uma conta paga.

Para verificar e solicitar cota, acesse a página "Cotas" no Google Cloud console. É possível filtrar as cotas de aceleradores e pedir aumentos.

Identificar uma opção de consumo

Use as considerações a seguir para escolher a melhor opção de consumo para sua carga de trabalho de IA/ML:

  • Tipo de carga de trabalho:considere o tipo de carga de trabalho que você quer implementar. Os requisitos do GKE variam se você estiver executando uma carga de trabalho de treinamento ou de inferência:
    • Treinamento:requer recursos de alto desempenho com memória significativa. As cargas de trabalho de treinamento geralmente têm um ciclo de vida bem definido. Essas cargas de trabalho geralmente são mais fáceis de planejar porque são menos propensas a picos repentinos no consumo de recursos.
    • Inferência:geralmente requer aceleradores otimizados para escalonabilidade e menor custo. As cargas de trabalho de inferência podem exigir uma quantidade significativa de memória do acelerador durante picos repentinos no consumo de recursos.
  • Ciclo de vida com base na fase de implementação:considere sua meta de negócios se você estiver executando uma prova de conceito (POC), avaliação de plataforma, desenvolvimento ou teste de aplicativo, produção ou otimização.
  • Tempo de provisionamento:determine se a carga de trabalho exige execução imediata ou se pode ser executada no futuro. Se a execução futura for possível, determine a flexibilidade do horário de início.
  • Equilíbrio entre custo e desempenho:avalie os requisitos de desempenho da sua carga de trabalho e as restrições de orçamento para selecionar o acelerador mais econômico. Considere a compensação entre o custo dos aceleradores e as características de desempenho deles. Não se esqueça de que novos aceleradores podem melhorar as proporções custo-performance.

Escolha uma opção de consumo

Use a tabela a seguir para escolher uma opção de consumo:

Opção de consumo Parâmetros de provisionamento Aceleradores compatíveis Detalhes Cargas de trabalho de exemplo
Reservas imediatas
  • Tempo de provisionamento:imediato (com reserva aprovada)
  • Tempo de vida:longo prazo (por reserva)
  • Qualquer GPU, exceto A4X, A4 ou A3 Ultra
  • Qualquer TPU
  • Custo:você recebe uma cobrança pelo período total da reserva.
  • Cota:a cota é aumentada automaticamente antes da entrega da capacidade.
  • Cargas de trabalho de longa duração e em grande escala, como o pré-treinamento de modelos de fundação ou inferência de vários hosts.
  • Cargas de trabalho de produção.
Reservas adiantadas
  • Tempo de provisionamento:imediato (com reserva aprovada)
  • Tempo de vida:longo prazo (por reserva)
  • G2
  • A2
  • A3 High com 8 GPUs
  • A3 Mega
  • A3 Edge
  • Custo:você recebe uma cobrança pelo período total da reserva.
  • Cota:a cota é aumentada automaticamente antes da entrega da capacidade.
  • Cargas de trabalho de longa duração e em grande escala, como o pré-treinamento de modelos de fundação ou inferência de vários hosts.
  • Cargas de trabalho de produção.
Reservas adiantadas por até 90 dias (no modo de calendário)
  • Tempo de provisionamento:imediato (com reserva aprovada)
  • Tempo de vida:até 90 dias
  • A4
  • A3 Ultra
  • A3 Mega
  • A3 High com 8 GPUs
  • A3 Edge
  • Ironwood (TPU7x)
  • TPU v6e
  • TPU v5p
  • TPU v5e
  • Custo:com desconto (até 53%). Você recebe uma cobrança pelo período da reserva.
  • Cota:nenhuma cota é cobrada.
  • Cargas de trabalho distribuídas de curta duração, como ajuste fino de modelos, simulações ou inferência em lote, em que é necessário um horário de início preciso.
  • Cargas de trabalho para avaliação de plataforma, comparativo de mercado ou testes de otimização.
Modo de provisionamento de início flexível
  • Tempo de provisionamento:sob demanda (sujeito à disponibilidade)
  • Tempo de vida:até 7 dias por alocação
  • Todas as famílias de GPUs, exceto A4X
  • Todas as versões de TPU
  • Cargas de trabalho em lote, como treinamento de modelo pequenos, ajuste ou inferência escalonável em que o horário de início é flexível.
  • Cargas de trabalho para POCs ou testes de integração.
VMs spot
  • Tempo para provisionamento:sob demanda (sujeito à disponibilidade)
  • Ciclo de vida:variável, pode ser interrompido com um aviso de 30 segundos
  • Todas as famílias de GPU, exceto A4X
  • Todas as versões de TPU
  • Cargas de trabalho tolerantes a falhas e de menor prioridade, como CI/CD, análise de dados ou computação de alto desempenho (HPC).
  • Cargas de trabalho altamente interrompíveis.
Sob demanda (GPUs ou TPUs)
  • Tempo de provisionamento:imediato (sujeito à disponibilidade)
  • Ciclo de vida:sem limite
  • Todas as famílias de GPU, exceto A4X, A4 ou A3 Ultra
  • Todas as versões de TPU
  • Custo:você paga conforme usa.
  • Cota:é cobrada a cota on demand de GPU ou TPU.
  • Cargas de trabalho de uso geral que exigem execução imediata.

Otimizar o custo e o provisionamento de cargas de trabalho com ComputeClasses

É possível usar ComputeClasses para gerenciar e automatizar dinamicamente sua estratégia de consumo de aceleradores definindo uma lista baseada em prioridade de configurações de substituição. Durante as operações de escalonamento vertical, o GKE tenta provisionar nós de acordo com a hierarquia de prioridades definida.

A lista a seguir descreve as opções de consumo disponíveis com ComputeClasses e como configurá-las. Para ver manifestos YAML completos, consulte Exemplos de opções de consumo com ComputeClasses.

  • Reservas: é possível definir o nome da reserva no campo reservations na sua ComputeClass. Isso garante que o GKE tente primeiro consumir sua capacidade reservada antes de voltar.
  • Modo de provisionamento de início flexível: ative a fila flexível usando o campo flexStart na ComputeClass e configure as durações de substituição de nós de fallback usando os campos nodeRecycling.
  • VMs spot: instrua o GKE a usar VMs spot ao provisionar nós para essa regra de prioridade definindo o campo spot como true.
  • Capacidade sob demanda combinada com uma política de localização multizonal: declare as configurações de máquina padrão na lista de prioridades e configure uma estratégia de localização de fallback usando os campos location.

As ComputeClasses não são compatíveis com reservas adiantadas ou reservas adiantadas por até 90 dias (no modo de calendário).

Exemplos de opções de consumo com ComputeClasses

As seções a seguir mostram exemplos de configuração para essas estratégias.

Reservas com configuração de substituição

Essa configuração funciona melhor para cargas de trabalho que podem tolerar interrupções, em vez de cargas de trabalho que dependem de dados persistentes ou precisam ser executadas até a conclusão.

Essa configuração estabelece uma estratégia de substituição resiliente usando as seguintes etapas:

  1. Consumir reservas primeiro:o GKE tenta provisionar nós usando sua reserva de capacidade específica e comprada na pré-venda.
  2. Recorrer ao início flexível:se a capacidade da reserva estiver totalmente utilizada, o GKE vai recorrer a recursos de início flexível com desconto e de curta duração.
  3. Retornar ao modo sob demanda:como último recurso, o GKE provisiona recursos padrão sob demanda.
  4. Migrar de volta para as reservas:ao ativar a migração ativa, o GKE consolida e migra automaticamente as cargas de trabalho de volta para os nós de reserva de maior prioridade assim que a capacidade fica disponível. Essa migração pode ser prejudicial.

    apiVersion: cloud.google.com/v1
    kind: ComputeClass
    metadata:
      name: ha-gpu-fallback
    spec:
      activeMigration:
        optimizeRulePriority: true # Migrate workloads back to reservation when capacity releases
      priorities:
      # Priority 1: Consume specific corporate reservation first
      - gpu:
          type: nvidia-l4
          count: 1
        reservations:
          affinity: Specific
          specific:
          - name: reserved-l4-pool
            project: my-project
            zones: [us-central1-a]
      # Priority 2: Fallback to Flex Start (short-duration allocation)
      - gpu:
          type: nvidia-l4
          count: 1
        flexStart:
          enabled: true
      # Priority 3: Fallback to On-demand resources
      - gpu:
          type: nvidia-l4
          count: 1
    

Modo de provisionamento de início flexível com configuração de reciclagem de nós

Essa configuração gerencia capacidade com desconto e de curta duração com tempo de atividade contínuo seguindo estas etapas:

  1. Solicitar VMs flex-start:o GKE solicita instâncias de VM da fila flex-start (que são executadas sem interrupção por até sete dias).
  2. Monitorar o vencimento do contrato de arrendamento:o GKE rastreia a duração restante dos nós de início flexível ativos.
  3. Acionar a reciclagem de nós:20 minutos (1.200 segundos) antes do vencimento do contrato de locação da VM, o GKE provisiona automaticamente um nó substituto.
  4. Reprogramar cargas de trabalho:as cargas de trabalho são migradas para o novo nó, retomando a execução sem interrupção do serviço.

    apiVersion: cloud.google.com/v1
    kind: ComputeClass
    metadata:
      name: flex-node-recycling
    spec:
      priorities:
      - gpu:
          type: nvidia-l4
          count: 1
        flexStart:
          enabled: true
          nodeRecycling:
            leadTimeSeconds: 1200 # Automatically launch replacement node before VM lease expires
    

Configuração de política de alocação em várias zonas

Essa configuração ignora as restrições de fornecimento de zona única usando as seguintes etapas:

  1. Definir zonas de destino:liste várias zonas de backup (como us-central1-a, us-central1-b e us-central1-c) nas regras de prioridade.
  2. Ampliar os parâmetros de destino:defina a política de localização como ANY. Essa configuração instrui o escalonador automático de cluster a pesquisar a capacidade solicitada em todas as zonas especificadas.
  3. Analisar a disponibilidade zonal:durante eventos de escalonamento vertical, o GKE verifica as zonas designadas.
  4. Provisionar em zonas disponíveis:o GKE provisiona imediatamente os nós de carga de trabalho solicitados em qualquer zona de destino que tenha capacidade correspondente. Essa estratégia evita bloqueios nas filas de alocação.

    apiVersion: cloud.google.com/v1
    kind: ComputeClass
    metadata:
      name: broad-zonal-serving
    spec:
      priorities:
      - gpu:
          type: nvidia-l4
          count: 1
        location:
          zones: [us-central1-a, us-central1-b, us-central1-c]
          locationPolicy: ANY # Provision accelerator in any target zone with supply
    

A seguir