Um novo benchmark de desempenho de ajuste fino para BridgeTower, um modelo de IA Vision-Language (VL), mostrou que há vida no campo de aceleração de IA além do verde da Nvidia. Embora a Nvidia domine o mercado de aceleração de IA (através de uma previsão excepcional, uma pilha de software bem pensada e documentada e desempenho de processamento puro), outros participantes estão ansiosos para conquistar uma fatia do mercado de IA para si. E pelo menos para BridgeTower, o silício Gaudi 2 da própria Intel (projetado e fabricado por meio da aquisição da Habana por US$ 2 bilhões pela Intel em 2019) foi mostrado por Hugging Face para superar o A100 de 80 GB da Nvidia em impressionantes 2,5x – e até supera o filho prodígio da Nvidia H100 em 1,4x.
Visão-Linguagem
Vision-Language (VL) refere-se a modelos de IA que podem processar e associar informações nas modalidades de linguagem e representação visual. Os modelos VL em específico são comumente associados a modelos de geração de imagens, como CLIP e Stable Diffusion XL da Open AI – um mercado em rápido crescimento que é liderado principalmente por Midjourney, Stable Diffusion e agora Ideogram.
De acordo com Habana, as acelerações importantes são o resultado de um sistema de carregamento de dados acelerado por hardware – um dos gargalos para o ajuste fino do modelo de IA, e especialmente para os modelos VL. Carregar uma carga de trabalho na memória costuma ser um gargalo de desempenho onde quer que a computação esteja, portanto, não é tão inesperado que Habana tentaria otimizar essa etapa específica do processo de treinamento.
O principal gargalo está relacionado à forma como as CPUs são prejudicadas por muitas operações caras, como decodificação e aumento de imagens (um problema semelhante ao Debate sobre sorteio de GPU), o que faz com que a HPU (ou GPU Nvidia) pare enquanto espera que mais dados sejam processados (pela CPU) e depois enviados para o acelerador de IA de sua escolha. É assim que o processo ocorre sem qualquer aceleração de hardware:
- Buscar dados (por exemplo, onde suas imagens JPEG estão armazenadas no disco)
- A CPU lê imagens codificadas
- A CPU decodifica imagens
- A CPU aplica transformações de imagem para aumentar imagens
- As imagens são enviadas aos dispositivos (embora isso geralmente não seja feito pelo próprio dataloader)
E este é o processo através da aceleração de hardware integrada de Gaudi 2, que acelera a transformação da imagem:
- Buscar dados
- A CPU lê imagens codificadas
- Imagens codificadas são enviadas para dispositivos
- Dispositivos decodificam imagens
- Dispositivos aplicam transformações de imagem para aumentar imagens
Através do método de aceleração de hardware, fica claro que a CPU é muito menos aproveitada (liberando ciclos de CPU para outras tarefas dentro do processo principal de ajuste fino), o que deve resultar em melhor desempenho.
Comparar o Gaudi 2 de Habana ajustando um ponto de verificação BridgeTower pré-treinado com parâmetros de 866M nos permite ver os ganhos de desempenho que o carregamento de imagem acelerado por hardware traz para a mesa. As cargas de trabalho foram executadas em computação distribuída em 8 dispositivos cada (A100 80 GB da Nvidia, H100 e Gaudi 2). Os resultados foram medidos e calculados em média em três execuções de processamento diferentes, com cada execução gerando processos crescentes de CPU totalmente dedicados ao carregamento de dados na memória (a primeira execução carrega memória dentro do processo principal da CPU, enquanto as execuções dois e três aumentam o número de carregamentos de memória processos por um e dois, respectivamente).
Dispositivo | dataloader_num_workers=0 | dataloader_num_workers=1 | dataloader_num_workers=2 | dataloader_num_workers=2 + mediapipe_dataloader |
Gaudí 2 HPU | 601,5 | 747,4 | 768,7 | 847,7 |
GPU H100 | 336,5 | 580,1 | 602.1 | N / D |
GPU A100 de 80 GB | 227,5 | 339,7 | 345,4 | N / D |
Os resultados são claros: o melhor cenário de desempenho para Gaudi 2 é o primeiro, onde os dados são carregados juntamente com o processo de treinamento principal, com Gaudi 2 superando até mesmo o H100 da Nvidia em 1,79x, e o A100 em 2,23x. Mas este é um cenário não otimizado, como a própria Habana admitiu; então talvez os resultados mais reveladores venham do terceiro ponto de dados, onde dois processos adicionais foram gerados para lidar com o carregamento de dados fora do principal processo de ajuste fino. Lá, os produtos da Nvidia certamente precisam apertar os olhos para capturar a nuvem de poeira de Gaudi 2 enquanto ela se distancia: Gaudi 2 oferece desempenho aprimorado de 1,3x em relação ao H100 de última geração da Nvidia e uma melhoria de desempenho de 2,23x em relação ao A100 80 GB.
Seria possível gerar processos adicionais para lidar com o carregamento de dados; mas como se pode verificar pela progressão do desempenho, essa estratégia traria retornos cada vez mais decrescentes. Na Nvidia H100, por exemplo, o desempenho é melhorado em 1,72x ao gerar um único processo de carregamento de dados dedicado, mas passar de um processo para dois traz apenas uma melhoria adicional de 3%. Devido à capacidade da Habana de trazer a maioria das etapas de carregamento de dados para Gaudi 2, no entanto, a empresa pode desbloquear uma melhoria adicional de desempenho de 10% em relação à sua própria melhor pontuação (onde o carregamento de dados e as transformações são gerenciados por dois processos de CPU).
Ainda há um longo caminho a percorrer antes que qualquer empresa possa reivindicar a hegemonia no espaço de aceleração da IA. A Nvidia tem uma pilha incrível de produtos e software que lhe permitiu obter a vantagem de ser pioneira; mas já vimos corridas suficientes em que os oprimidos alcançam (e às vezes até superam) os favoritos para saber que Intel, AMD e outros estão todos tentando roubar o trovão da Nvidia.