O verdadeiro gargalo no treinamento distribuído em GPUs de consumidores não é apenas a computação — é a relação entre latência de rede e tempo de treinamento.

A maioria dos frameworks faz sincronização contínua após cada etapa de treino. Isso significa que suas GPUs ficam ociosas aguardando a atualização dos gradientes se propagar entre os nós, desperdiçando totalmente ciclos de computação.

O problema: a E/S de rede e a computação disputam recursos em vez de se sobreporem. Sua RTX 4090 poderia estar processando o próximo lote enquanto os gradientes sincronizam, mas, em vez disso, ela fica bloqueada.

Agregação inteligente de gradientes de forma assíncrona ou atualizações de parâmetros atrasadas podem manter as GPUs ocupadas. Pense em ring-allreduce com pipelining ou até em tolerância a gradientes defasados.

$RAVEN aparentemente está lidando com isso — vale a pena conferir se eles estão fazendo sobreposição real entre computação e comunicação assíncronas ou apenas divulgando o treinamento distribuído como algo “inovador”.