Nesta página, descrevemos as técnicas disponíveis para conseguir aceleradores de computação, como GPUs ou TPUs, com base nos requisitos das suas 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 com sucesso cargas de trabalho de IA/ML.
Para saber mais sobre papéis comuns e tarefas de exemplo mencionados no conteúdo do Google Cloud , consulte Tarefas e papéis de usuário comuns do GKE.
Entender as opções de consumo
Você pode escolher entre as seguintes opções para consumir aceleradores no GKE:
- Sob demanda: você consome TPUs ou GPUs no GKE sem organizar a capacidade com antecedência. Antes de solicitar recursos, é necessário ter cota on demand suficiente para o tipo e a quantidade específicos de aceleradores. A opção sob demanda é a mais flexível, mas não há garantia de que haverá recursos suficientes 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 para durações normalmente mais longas em um momento específico no futuro. Você tem acesso exclusivo aos recursos reservados durante esse período. As reservas adiantadas exigem o envolvimento de 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 reservas adiantadas no modo 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, quer os use ou não.
- Início flexível: você garante recursos densamente alocados 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ção 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 as VMs spot 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, é possível 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 garantir a disponibilidade de recursos para todos os usuários do Google Cloud . As cotas têm valores definidos por 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 de que suas cargas de trabalho precisam:
É necessário 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 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 cotas, acesse a página Cotas no console do Google Cloud . É possível filtrar as cotas de acelerador e solicitar 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 uma vida útil bem definida. 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.
- Vida útil com base na fase de implementação: considere sua meta de negócios ao executar uma prova de conceito (POC), avaliação de plataforma, desenvolvimento ou teste de aplicativos, produção ou otimização.
- Tempo de provisionamento: determine se a carga de trabalho requer execução imediata ou se pode ser executada no futuro. Se a execução futura for possível, determine o nível de flexibilidade do horário de início.
- Equilíbrio entre custo e desempenho: avalie os requisitos de desempenho da carga de trabalho e as restrições de orçamento para selecionar o acelerador mais econômico. Considere as vantagens e desvantagens entre o custo dos aceleradores e as características de desempenho deles. Lembre-se de que novos aceleradores podem trazer melhores relações de custo-benefício.
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 |
|
|
|
|
| Reservas adiantadas |
|
|
|
|
| Reservas adiantadas por até 90 dias (no modo calendário) |
|
|
|
|
| Modo de provisionamento de início flexível |
|
|
|
|
| VMs spot |
|
|
|
|
| On demand (GPUs ou TPUs) |
|
|
|
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 de configurações substitutas com base em prioridade. Durante as operações de escalonamento vertical, o GKE tenta provisionar nós de acordo com a hierarquia de prioridades que você definiu.
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
reservationsna 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
flexStartna ComputeClass e configure as durações de substituição de nós de reserva usando os camposnodeRecycling. - VMs spot: instrua o GKE a usar VMs spot ao
provisionar nós para essa regra de prioridade definindo o
campo
spotcomotrue. - 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:
- Consumir reservas primeiro: o GKE tenta provisionar nós usando sua reserva de capacidade específica comprada na pré-venda.
- Alternar para o início flexível: se a capacidade da reserva estiver totalmente utilizada, o GKE vai alternar para recursos de início flexível com desconto e de curta duração.
- Retorno para sob demanda: como último recurso, o GKE provisiona recursos padrão sob demanda.
Migrar de volta para as reservas: ativar a migração ativa instrui o GKE a consolidar e migrar automaticamente as cargas de trabalho de volta para os nós de reserva de maior prioridade assim que houver capacidade disponível. Essa migração pode ser disruptiva.
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 a capacidade de curta duração com desconto e tempo de atividade contínuo usando as seguintes etapas:
- Solicitar VMs flex-start: o GKE solicita instâncias de VM da fila de início flexível (que são executadas sem interrupção por até sete dias).
- Monitorar a expiração do contrato: o GKE rastreia a duração restante dos nós de início flexível ativos.
- Acionar a reciclagem de nós: 20 minutos (1.200 segundos) antes que a locação da VM expire, o GKE provisiona automaticamente um nó de substituição.
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 da política de alocação de várias zonas
Essa configuração ignora as restrições de fornecimento de zona única usando as seguintes etapas:
- Definir zonas de destino: liste várias zonas de backup (como
us-central1-a,us-central1-beus-central1-c) nas regras de prioridade. - Ampliar os parâmetros de destino: você define a política de localização como
ANY. Essa configuração instrui o escalonador automático de clusters a pesquisar a capacidade solicitada em todas as zonas especificadas. - Analisar a disponibilidade zonal: durante eventos de escalonamento vertical, o GKE verifica as zonas designadas.
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
- Saiba mais sobre GPUs no GKE.
- Saiba mais sobre TPUs no GKE.
- Saiba mais sobre a inferência de IA/ML no GKE.