28 pontos por xguru 2023-09-12 | 6 comentários | Compartilhar no WhatsApp
  • 4 fatores que fizeram a Nvidia aumentar o desempenho de GPUs em 1000 vezes ao longo de 10 anos
  • Explicados pelo Chief Scientist Bill Dally em um único slide no keynote da IEEE Hot Chips 2023

Representação Numérica: 16 vezes

  • "De modo geral, o maior ganho que obtivemos veio da melhoria na representação numérica"
  • Esses números se referem aos principais parâmetros das redes neurais
  • Entre esses parâmetros, um é o peso (Weights), e outro é a ativação (Activations)
    • Peso: a força da conexão entre neurônios do modelo
    • Ativação: decide se o neurônio será ativado multiplicando a soma das entradas com os pesos aplicados e propagando a informação para a próxima camada
  • Antes da P100, as GPUs da Nvidia representavam esses pesos usando números de ponto flutuante de precisão simples (single precision floating-point)
  • Definidos pelo padrão IEEE 754, esses números têm 32 bits de comprimento: 23 bits representam a fração, 8 bits funcionam como expoente aplicado à fração e 1 bit é usado para o sinal do número
  • Mas pesquisadores de machine learning descobriram que, em muitos cálculos, é possível usar números menos precisos e ainda assim a rede neural continuar fornecendo respostas corretas
  • Ao processar um número menor de bits, a lógica que executa os principais cálculos do machine learning (multiplicação e acumulação) pode ser menor e mais eficiente
    • A energia necessária para multiplicação é proporcional ao quadrado do número de bits
  • Por isso, a Nvidia reduziu esse número pela metade na P100 ao usar FP16. O Google também lançou sua própria versão, chamada bfloat16
    • A diferença entre os dois está na proporção entre bits de fração, que fornecem precisão, e bits de expoente, que fornecem alcance
    • O bfloat16 tem o mesmo número de bits de expoente do FP32, o que facilita a conversão entre os dois formatos
  • A GPU mais avançada da atualidade, a H100, consegue executar partes específicas de grandes redes neurais transformadoras, como o ChatGPT e outros LLMs, usando números de 8 bits
    • Mas a Nvidia descobriu que isso não é uma solução one-size-fits-all aplicável a todos os casos
    • Por exemplo, a arquitetura de GPU Hopper da Nvidia usa, na prática, dois formatos FP8 diferentes para fazer cálculos
    • Um tem precisão um pouco maior, e o outro tem alcance um pouco maior
    • O diferencial especial da Nvidia é saber quando usar cada formato
  • Dally e sua equipe têm todo tipo de ideia interessante para extrair mais IA de menos bits
  • E está claro que o sistema de ponto flutuante não é ideal
  • Um dos principais problemas é que a precisão de ponto flutuante é relativamente consistente, independentemente de os números serem grandes ou pequenos
  • Mas os parâmetros das redes neurais não usam números grandes e ficam concentrados em torno de 0
  • Por isso, o foco de P&D da Nvidia é encontrar maneiras eficientes de representar números com mais precisão quando estão próximos de 0

Instruções Complexas: 12,5 vezes

  • "O overhead de buscar e decodificar instruções é várias vezes maior do que o de executar uma operação aritmética simples"
  • Por exemplo, um dos tipos de multiplicação consome um overhead equivalente a 20 vezes os 1,5 picojoules da própria operação
  • A Nvidia obteve grandes ganhos ao projetar GPUs para executar cálculos grandes com uma única instrução, em vez de uma sequência de instruções
  • Ainda existe overhead, mas com instruções complexas é possível amortizar esse custo com mais operações matemáticas
  • Por exemplo, no caso da instrução complexa IMMA (integer matrix multiply and accumulate, multiplicação e acumulação de matrizes inteiras), o overhead representa apenas 16% do custo energético da matemática

Lei de Moore: 2,5 vezes

  • Manter o avanço da Lei de Moore envolve investimentos de bilhões de dólares, engenharia extremamente complexa e inúmeras instabilidades internacionais
  • Mesmo assim, isso faz parte do aumento de desempenho das GPUs da Nvidia
  • A Nvidia vem aproveitando continuamente as tecnologias de fabricação mais avançadas
  • A H100 é fabricada no processo N5 (5 nanômetros) da TSMC, e a foundry só começou a produção inicial da próxima geração N3 no fim de 2022

Esparsidade: 2 vezes

  • Depois do treinamento, muitas redes neurais ainda mantêm neurônios que, para começar, nem deveriam estar ali
  • Em algumas redes neurais, "é possível remover mais da metade dos neurônios sem perder precisão"
  • Como os valores de peso desses neurônios são 0 ou quase 0, eles não contribuem para a saída, e incluí-los no cálculo é apenas desperdício de tempo e energia
  • Tornar essas redes "esparsas" (Sparse) para reduzir a carga computacional é uma tarefa complicada
  • No entanto, com a A100, antecessora da H100, a Nvidia introduziu um recurso chamado esparsidade estruturada (Structured Sparsity)
  • Esse hardware pode forçar a ocorrência de 2 entre 4 possíveis eventos de poda, permitindo chegar a um novo cálculo de matriz menor
  • "A questão da esparsidade ainda não acabou" "Precisamos fazer algo com as ativações, e também podemos ter uma esparsidade maior nos pesos"

6 comentários

 
ninebow 2023-09-12

Uau, obrigado pelo ótimo texto!

 
nicewook 2023-09-12

Achei uma leitura divertida.

 
ragingwind 2023-09-12

Nossa, então tenho que continuar comprando ações..

 
xguru 2023-09-12

Tenho algumas ações da Nvidia que comprei em 2018 como reconhecimento, e agora estão em 1100%. Eu devia ter comprado um monte naquela época. T_T

 
laeyoung 2023-09-12

Uau..!

 
xguru 2023-09-12

16 x 12,5 x 2,5 x 2 dá exatamente 1000.