O Que É um GPU Runner? CI para ML, CUDA e Gráficos
Um GPU runner é um runner de CI equipado com uma unidade de processamento gráfico, usado para treino e inferência de machine learning, builds de CUDA e testes acelerados por GPU.
A maioria do CI não precisa de GPU - mas pipelines de ML, bibliotecas CUDA e cargas gráficas precisam. GPU runners são especializados e caros, então você os direciona apenas para os jobs que genuinamente usam o hardware.
Quando você precisa de um GPU runner
- Treinar ou fazer fine-tuning de modelos, mesmo pequenos, no CI.
- Rodar testes que exercitam caminhos de código CUDA ou GPU.
- Fazer build de bibliotecas de GPU que precisam de um device real para compilar ou verificar.
- Pipelines de renderização ou gráficos que exigem aceleração por GPU.
Por que os hospedados pelo GitHub são limitados aqui
Os runners hospedados pelo GitHub historicamente ofereceram opções de GPU limitadas, então CI de GPU geralmente significou self-hosting em instâncias de GPU na cloud ou usar um provedor que oferece GPU runners diretamente.
A realidade do custo
Instâncias de GPU estão entre a computação mais cara que você pode alugar, então GPU runners ociosos são muito caros. GPU runners efêmeros e autoscaled que escalam para zero entre jobs são essenciais para evitar queimar dinheiro em aceleradores ociosos.
Roteando jobs de GPU
Você direciona GPU runners com um label dedicado (por exemplo, gpu) para que apenas os jobs que precisam de aceleração caiam no hardware caro, mantendo todo o resto em Linux runners baratos.
Considerações sobre driver e imagem
GPU runners precisam de drivers correspondentes, versões do CUDA toolkit e suporte ao container runtime embutidos na imagem. Uma incompatibilidade entre o driver e a versão do framework é uma causa comum de falhas de CI de GPU, então a imagem precisa ser mantida com o mesmo cuidado com que o hardware é provisionado.
Principais conclusões
- Um GPU runner tem uma GPU para cargas de CI de ML, CUDA e gráficos.
- As opções de GPU hospedadas são limitadas, então CI de GPU frequentemente significa self-hosting.
- Computação de GPU é cara, tornando o scale-to-zero e a efemeridade críticos.
- Um label dedicado roteia apenas jobs que precisam de GPU para o hardware.