Skip to content
Latchkey

O Que É GPU CI? Executar Pipelines em Runners com GPU Explicado

GPU CI é executar jobs de integração contínua em runners equipados com GPU, para que treinamento de machine learning, testes de inferência e builds CUDA possam rodar no pipeline.

A maior parte do CI roda em CPU, o que é adequado para construir e testar software comum. Machine learning é diferente: treinamento e muitos testes de modelo são drasticamente mais rápidos em uma GPU. O GPU CI dá ao seu pipeline acesso a esse hardware para que o trabalho de ML possa rodar automaticamente, e não apenas no laptop de alguém.

O que é GPU CI

GPU CI significa provisionar runners de CI que têm uma ou mais GPUs acopladas, para que jobs possam usar frameworks como PyTorch ou TensorFlow com aceleração de hardware. É o que permite que treinamento, testes de inferência em GPU e builds dependentes de CUDA aconteçam dentro de um pipeline automatizado.

Por que o ML precisa disso

O treinamento de deep learning em CPU pode ser dezenas a centenas de vezes mais lento do que em GPU. Rodar esses jobs sem uma GPU costuma ser inviável. O GPU CI também importa para testar se os caminhos de código de GPU realmente funcionam, já que testes só em CPU não conseguem exercitar kernels CUDA.

O ângulo do custo

Runners com GPU são caros por minuto, então o objetivo é usá-los apenas onde ajudam. Um bom padrão direciona o job pesado de treinamento ou inferência para um runner com GPU enquanto todo o resto - linting, validação de dados, testes de CPU - permanece em runners de CPU baratos.

GPU CI na prática

Selecione um runner com GPU apenas para o job que precisa dele, mantendo o resto do pipeline em CPU.

Routing one job to a GPU runner
jobs:
  lint:  { runs-on: small }            # cheap CPU
  train:
    runs-on: gpu-large                  # GPU only here
    steps:
      - run: nvidia-smi
      - run: python train.py

Nota da Latchkey

Na Latchkey, runners com GPU e grandes estão disponíveis sob demanda, então você paga por minutos de GPU apenas nos jobs que precisam deles. Fazer cache de grandes conjuntos de dados, pesos de modelo e dependências pesadas de CUDA entre execuções mantém os jobs caros de GPU curtos, e o auto-retry impede que uma busca transitória de dados desperdice uma execução dispendiosa de GPU.

Principais conclusões

  • GPU CI executa jobs do pipeline em runners equipados com GPU para que treinamento de ML, testes de inferência e builds CUDA possam rodar.
  • Deep learning é muito mais rápido em GPU, e alguns caminhos de código só podem ser testados com uma GPU real.
  • Direcione apenas o job pesado para um runner com GPU e faça cache de grandes ativos para reduzir os minutos caros de GPU.

Guias relacionados