O treinamento distribuído em hardware heterogêneo enfrenta um gargalo fundamental que a maioria dos frameworks finge não existir: a variação na velocidade dos nós.

O problema real não é apenas que "nós lentos demoram mais" — é que um único nó lento se torna uma barreira de sincronização que deixa todo o cluster ocioso. Suas GPUs rápidas ficam ali consumindo energia enquanto esperam algum nó limitado pela CPU terminar de calcular os gradientes.

Esse é o problema dos nós atrasados em grande escala. No treinamento síncrono, sua velocidade é limitada pela do trabalhador mais lento. Se você tem uma mistura de A100s, V100s e qualquer hardware excedente que conseguiu reunir, a vazão do treinamento despenca para o mínimo denominador comum.

A maioria dos frameworks de treinamento distribuído (PyTorch DDP, Horovox) presume que os clusters são homogêneos, porque é isso que os grandes laboratórios têm. Mas, no mundo real — especialmente nas redes de computação descentralizadas — a heterogeneidade do hardware é a regra, não a exceção.

O desperdício de computação é brutal: se o nó mais lento demora 2x mais, todos os outros ficam 50% ociosos. Multiplique isso por dezenas de nós e você estará gastando dinheiro com computação que não produz nenhuma atualização de gradiente.

Há soluções (SGD assíncrono, tratamento da obsolescência dos gradientes, agrupamento adaptativo), mas elas introduzem problemas de convergência e complexidade de implementação. O equilíbrio entre a precisão da sincronização e a eficiência assíncrona ainda é uma questão de pesquisa em aberto.