LLMs acelerados por hardware: pesquisa abrangente e comparação
- Os LLMs surgiram como ferramentas poderosas em tarefas de processamento de linguagem natural, revolucionando a área com sua capacidade de compreender e gerar texto semelhante ao humano
- Este artigo faz uma investigação abrangente de diversos esforços de pesquisa sobre a aceleração de redes Transformer para grandes modelos de linguagem usando aceleradores de hardware
Framework e comparação
- Apresenta o framework proposto e realiza comparações qualitativas e quantitativas sobre tecnologia, plataforma de processamento (FPGA, ASIC, In-Memory, GPU), ganho de velocidade, eficiência energética, desempenho (GOPs) e eficiência energética (GOPs/W)
- O principal desafio é que cada esquema proposto foi implementado em tecnologias de processo diferentes, o que dificulta uma comparação justa
- A principal contribuição deste artigo é estimar os resultados de desempenho e eficiência energética na mesma tecnologia, permitindo uma comparação justa
Experimentos e resultados
- Implementa partes de LLMs em vários chips FPGA para estimar os resultados na mesma tecnologia de processo e comparar o desempenho de forma justa
Resumo do GN⁺
- Este artigo oferece uma pesquisa abrangente sobre a aceleração de hardware de grandes modelos de linguagem (LLMs)
- Compara desempenho e eficiência energética em diferentes plataformas de processamento, permitindo uma comparação justa
- Usa experimentos com chips FPGA para estimar resultados na mesma tecnologia
- Pode ser útil para pessoas interessadas em melhorar o desempenho de LLMs na área de processamento de linguagem natural
- Outros projetos com funcionalidades semelhantes incluem os aceleradores de GPU da NVIDIA e as TPUs do Google
1 comentários
Opiniões no Hacker News
Este artigo tem uma contextualização superficial, então, para acrescentar contexto: desde o início dos anos 1990 havia a observação de que o desempenho de computação da CPU (FLOPs) melhorava mais rapidamente do que a largura de banda de memória; em 1995, William Wulf e Sally Mckee previram que essa diferença levaria a uma barreira de memória, na qual a maior parte da computação seria limitada não por operações aritméticas, mas pelo acesso a dados.
Nos últimos 20 anos, o pico de FLOPS do hardware de servidores aumentou 3 vezes a cada 2 anos, mas a largura de banda de DRAM e de interconexão cresceu apenas cerca de 1,6 vez e 1,4 vez, respectivamente.
Por isso, no treinamento e na inferência de LLMs, o gargalo de desempenho está se deslocando cada vez mais para a largura de banda de memória e, em especial nos modelos decodificadores Transformer autorregressivos, isso pode se tornar o gargalo dominante.
Essa tendência está criando demanda por tecnologias como Compute-in-memory (CIM) e processing-in-memory (PIM). Como se trata de hardware que opera diretamente sobre os dados dentro da memória, sem primeiro movê-los para registradores da CPU, ele pode reduzir latência e consumo de energia, além de ter potencial para contornar a barreira de memória.
O artigo extrapola até um nó de 16 nm por meio de ajuste polinomial para comparar hardware ASIC e FPGA em diferentes tamanhos de processo semicondutor: “Com base em ‘Scaling equations for the accurate prediction of CMOS device performance from 180 nm to 7nm’, de Aaron Stillmaker e B. Baas, extrapolamos o desempenho e a eficiência energética em tecnologia de 16 nm para uma comparação justa”.
Mas, para CIM/PIM, ele diz: “Como o desempenho de aceleradores in-memory não se baseia apenas na tecnologia de processo, realizamos a extrapolação apenas para aceleradores FPGA e ASIC, nos quais a tecnologia de processo afeta significativamente o desempenho do sistema”, e não faz a extrapolação. À primeira vista, parece uma decisão estranha, e provavelmente há alguém que possa explicar melhor esse ponto.
Leituras adicionais: https://arxiv.org/abs/2403.14123, https://en.m.wikipedia.org/wiki/In-memory_processing, http://vcl.ece.ucdavis.edu/pubs/2017.02.VLSIintegration.Tech...
Ainda assim, gosto de produtos que vêm em formato de módulo de RAM e têm preço baixo. Dá para imaginar encher uma placa 1U com vários desses módulos e conectá-los por uma interconexão de alta velocidade, ou até lotar uma placa PCI com eles.
O PCI-e V4 passou rápido demais, parece que teve uma vida útil de só uns 2 anos, e o NVMeOF vem escalando bem junto com o desempenho da malha. O H100 DGX atual tem uma interconexão de 400 GB/s.
“O crescimento explosivo dos modelos de IA está sendo limitado pelo aumento da lacuna entre desempenho computacional e largura de banda de memória. Modelos de próxima geração como o GPT-5 devem chegar a uma escala sem precedentes de 3 a 5 trilhões de parâmetros, mas o gargalo técnico da largura de banda de memória está se tornando um obstáculo central para realizar plenamente seu potencial.”
https://www.lycee.ai/blog/2024-09-04-samsung-memory-bottlene...
Sempre gostei de arranjos sistólicos e, depois de examinar várias opções ao longo das últimas décadas, considero que uma grade cartesiana de células é a solução ideal.
Cada célula tem 4 bits de entrada vindos dos vizinhos, um de cada, e 4 bits de saída indo para os vizinhos, um para cada. No centro há um registrador de deslocamento de 64 bits em uma longa cadeia de varredura, e sua saída entra em 4 multiplexadores 16:1 e em um latch de 4 bits.
Usando a mágica da coloração de grafos para aplicar clock a todas as células em um padrão xadrez, os dados podem fluir em qualquer direção sem viés para uma direção específica e sem condições de corrida. As entradas de qualquer célula ficam em estado estável.
Esse método oferece a flexibilidade de um FPGA sem precisar se preocupar com problemas de temporização, condições de corrida, glitches etc. Os fios também são todos curtos, então tudo é local, rápido e de baixo consumo.
Por outro lado, não é eficiente em termos de portas nem oferece o caminho lógico mais curto. Todas as operações individuais acontecem, na prática, em paralelo, e todos os cálculos são pipelineados.
É uma ideia que tenho desde cerca de 1982, e eu gostaria que alguém a assumisse e a construísse direito. Chamo-a de BitGrid.
Material relacionado: https://arxiv.org/pdf/2406.08413
Memory Is All You Need: An Overview of Compute-in-Memory Architectures for Accelerating Large Language Model Inference
Quero ver um LLM rodando em WebGL, onde tudo é textura. Ver visualmente as diferenças de arquitetura deve ser bem interessante.
O gargalo hoje em dia é a movimentação de memória, e é por isso que HBM é caro. O design da Nvidia também é otimizado, tanto no nível do chip quanto no nível do sistema, para a memória, que é o verdadeiro gargalo.
Na prática, não se vê muito isso.
Será que uma arquitetura híbrida de FPGA + ASIC + in-memory pode ter um papel em escalabilidade e flexibilidade? Como cada um tem seus pontos fortes — FPGA em flexibilidade, ASIC em desempenho e in-memory em eficiência energética — fico curioso se uma abordagem híbrida que integre tudo isso poderia elevar ainda mais o desempenho de LLMs
In-memory parece fazer sentido não só em termos de desempenho, mas também como direção. Não faz muito sentido criar um ASIC ou programar um FPGA para um modelo que, mesmo com sorte, provavelmente ficará ultrapassado em alguns meses
Houve um artigo sobre executar LLMs com energia no nível de uma lâmpada
https://arxiv.org/abs/2406.02528
https://news.ucsc.edu/2024/06/matmul-free-llm.html
O ponto central é usar duas técnicas para evitar multiplicação de matrizes. Primeiro, força todos os números dentro das matrizes a assumirem apenas três valores ternários, -1, 0 e +1, reduzindo multiplicações a somas. Segundo, em vez de multiplicar todos os elementos um por um, sobrepõe as matrizes e executa apenas as operações importantes
Os pesquisadores dizem ter introduzido computação baseada em tempo no treinamento do modelo para manter o desempenho da rede neural, o que dá à rede uma “memória” das informações importantes que processa e melhora o desempenho
Em GPUs padrão, o uso de memória caiu para cerca de um décimo e a velocidade aumentou cerca de 25%; isso pode abrir caminho para executar o algoritmo em capacidade máxima mesmo em dispositivos com pouca memória, como smartphones. Um protótipo em FPGA feito em três semanas superou uma taxa de processamento legível por humanos usando apenas 13 W, enquanto uma GPU precisaria de cerca de 700 W, tornando o hardware customizado mais de 50 vezes mais eficiente que uma GPU, segundo eles
Não tenho certeza se in-memory aqui se refere a um hardware especial que combina CPU e RAM
Citando um artigo antigo de aceleração que mostrou melhoria de 19× em relação a DRAM + GPU: “Como operações MAC dominam a maior parte do tempo de execução das tarefas de machine learning, propomos multiplicação dentro do subarray e acumulação dentro do banco. A multiplicação é processada por um método baseado em colunas que executa operações AND e somas, adicionando menos de 1% de overhead de área”
https://arxiv.org/pdf/2105.03736
Existe uma forma de ver o conteúdo do Arxiv de um jeito mais legível?
Toda vez que entro nesse site, fico me perguntando se aquilo sequer tem uma interface, me perco e acabo saindo antes de chegar ao conteúdo
Para artigos individuais, esse é o melhor jeito, e também existem alguns front-ends para o Arxiv, como https://arxiv-sanity-lite.com/