notícias

outro chip para desafiar a gpu

2024-10-04

한어한어Русский языкРусский языкEnglishEnglishFrançaisFrançaisIndonesianSanskritIndonesian日本語SanskritDeutsch日本語PortuguêsDeutschΕλληνικάPortuguêsespañolΕλληνικάItalianoespañolSuomalainenItalianoLatinaSuomalainenLatina

resumo

para um llm de 3 bilhões de parâmetros, um protótipo de dispositivo de inferência de pesquisa com 16 processadores ibm aiu northpole forneceu uma enorme taxa de transferência de sistema de 28.356 tokens/segundo e menos de 1 ms/token de latência (por usuário) em comparação com 16. cada placa northpole consome apenas 672 w em um formato compacto 2u. focando em baixa latência e alta eficiência energética, northpole (12 nm) é comparado com um conjunto de gpus (7/5/4 nm) em vários consumos de energia.na latência de gpu mais baixa, o northpole fornece métricas de eficiência energética 72,7 melhores (token/s/w), ao mesmo tempo que fornece melhor latência.

introduzir

grandes modelos de linguagem (llms) alcançaram benchmarks de desempenho significativos em diferentes tarefas de ia, como auxiliar a programação fornecendo sugestões de código, tendo bom desempenho em testes padronizados e auxiliando na criação de conteúdo de artigos, blogs, imagens e vídeos.

na implantação em larga escala de llms, especialmente na implantação em larga escala de inteligência artificial, surgem dois desafios principais e conflitantes, a saber: consumo de energia e latência de resposta.

primeiro, uma vez que o llm requer recursos energéticos substanciais tanto para formação como para inferência, é necessária uma futura infra-estrutura informática sustentável para alcançar a sua implementação eficiente e generalizada. à medida que as pegadas de carbono dos centros de dados se expandem e se tornam cada vez mais limitadas em termos de energia, a eficiência energética dos centros de dados torna-se cada vez mais importante. de acordo com um relatório do fórum econômico mundial:

"atualmente, a pegada de carbono ambiental dos data centers está dividida principalmente em duas partes: a formação representa 20% e a inferência representa 80%. à medida que os modelos de inteligência artificial se desenvolvem em diferentes campos, a procura de inferência e a sua pegada ambiental aumentarão. "

em segundo lugar, muitas aplicações, como conversas interativas e fluxos de trabalho autônomos, exigem latência muito baixa. dentro de uma determinada arquitetura de computação, a redução da latência pode ser alcançada através da redução do rendimento, mas isso resulta em redução da eficiência energética. parafraseando uma máxima clássica do sistema:

"o problema da taxa de transferência pode ser resolvido com dinheiro, mas o problema do atraso é mais complicado porque a velocidade da luz é fixa." (parafraseado de [10], substituindo "largura de banda" por "taxa de transferência".)

as gpus podem atingir latência mais baixa usando lotes menores, mas às custas do rendimento e da eficiência energética. além disso, a fragmentação da gpu reduz a latência usando o paralelismo de dados em várias gpus, mas novamente às custas da eficiência energética. com fragmentação ou não, as gpus parecem atingir um limite rígido com menor latência. a compensação da gpu entre eficiência energética e latência é mostrada na figura 1.

figura 1: desempenho do northpole (12 nm) em relação às gpus de última geração (7/5/4 nm) em métricas de energia e latência do sistema, onde a latência do sistema é a latência total experimentada por cada usuário. na latência de gpu mais baixa (h100, ponto p2), o northpole fornece métricas de eficiência energética 72,7x melhores (tokens/segundo/w). no melhor índice de eficiência energética da gpu (l4, ponto p1), o northpole oferece latência 46,9 vezes menor.

portanto, uma questão-chave de pesquisa explorada neste artigo é como atingir simultaneamente os dois objetivos conflitantes de baixa latência e alta eficiência energética.

northpole é um ecossistema de chips aceleradores de inferência e software co-projetados a partir dos primeiros princípios para fornecer eficiência superior para inferência de redes neurais. embora northpole não tenha sido projetado especificamente para llm, surpreendentemente, este artigo demonstra que a nova arquitetura northpole pode alcançar inferência llm de baixa latência e eficiência energética (figura 1, figura 2 e tabela 1).

tabela i: medições de desempenho

desempenho medido dos sistemas northpole e gpu por placa. para cada métrica, # significa que menor é melhor, enquanto " significa que maior é melhor. para dispositivos de 16 placas northpole, o consumo de energia é medido por placa e a taxa de transferência total do sistema é dividida por 16 placas. latência northpole em todas as 16 placas para medição. p1 , p2, p3 e p4 referem-se aos pontos marcados na figura 1 e figura 2, respectivamente, indicando o maior índice de eficiência energética da gpu, a menor latência geral da gpu, o maior índice de espaço da gpu e a menor latência da gpu com eficiência energética.

os principais resultados da pesquisa deste artigo são os seguintes:

para um modelo de linguagem grande (llm) com tamanho de parâmetro de 3 bilhões, cuja estrutura do modelo é derivada do modelo ibm granite-8b-code-base e é consistente com llama 3 8b e mistral 7b [14], este artigo demonstra um configuração dispositivo de inferência de protótipo de pesquisa com 16 processadores northpole.

em termos de desempenho absoluto, o dispositivo oferece 28.356 tokens/s de taxa de transferência do sistema e latência de usuário único inferior a 1 milissegundo, enquanto consome 672 watts de energia em 16 placas northpole em um modelo 2u.

em termos de desempenho relativo, comparando o northpole de 12 nm com uma gama de gpus (7/5/5/4 nm a100/l4/l40s/h100 respectivamente) com diferentes consumos de energia, pode ser visto na figura 2 (a) e como pode pode ser visto na figura 2 (c): na latência de gpu mais baixa (ponto p2), o northpole fornece métricas de eficiência energética 72,7 vezes melhores (tokens/segundo/w) e métricas de espaço 15,9 vezes melhores (tokens/segundo/transistor), enquanto o a latência ainda é inferior a 2,5 vezes; no melhor indicador de eficiência energética da gpu (ponto p1), o northpole fornece latência 46,9 vezes menor e indicadores de espaço 2,1 vezes melhores, ao mesmo tempo que fornece métricas de eficiência energética 2,2 vezes melhores na melhor métrica de espaço da gpu (; ponto p3), o northpole fornece latência 20,3x menor e métricas de eficiência energética 5,3x melhores, ao mesmo tempo que fornece métricas de espaço 1,4x melhores.

em particular, ao comparar o northpole de 12 nm com a gpu l4 de 5 nm para um consumo de energia comparável, pode-se ver na figura 2 (e) que na taxa de transferência l4 mais alta (menos de 50 ms por token, ponto p1) hora,northpole fornece latência 46,9 vezes menor enquanto melhora o rendimento em 1,3 vezes e na latência l4 mais baixa (ponto p4), northpole fornece rendimento 36,0 vezes maior (tokens/segundo/cartão) enquanto melhora a latência ainda abaixo de 5,1x.

figura 2: painéis (a) – (d) mostram o desempenho do northpole de 12 nm em relação às gpus de última geração (7/5/4 nm) em métricas de eficiência energética, espaço e latência do sistema, onde a latência do sistema é por a latência total experimentada pelo usuário.

o painel (a) é igual à figura 1, com a marcação adicional do ponto p3. os painéis (a) e (c) usam uma única gpu, enquanto os painéis (b) e (d) usam tecnologia de sharding, que pode reduzir a latência, mas apenas às custas da eficiência energética e de espaço. na latência de gpu mais baixa (h100, ponto p2), o northpole fornece métricas de eficiência energética 72,7x melhores (tokens/segundo/w) e métricas de espaço 15,9x melhores (tokens/segundo/transistor), embora ainda tenha baixa latência mais de 2,5 vezes; no melhor índice de eficiência energética da gpu (l4, ponto p1), o northpole fornece latência 46,9 vezes menor e índice de espaço 2,1 vezes melhor, ao mesmo tempo que fornece índice de eficiência energética 2,2 vezes melhor na melhor das hipóteses. quando se trata de métricas espaciais da gpu (a100,; ponto p3), o northpole fornece latência 20,3x menor e métricas de eficiência energética 5,3x melhores, ao mesmo tempo que fornece métricas espaciais 1,4x melhores.

o painel (e) mostra o desempenho do northpole de 12 nm em relação à gpu l4 de 5 nm na taxa de transferência (tokens/segundo/cartão) e métricas de latência do sistema. na latência l4 mais baixa (ponto p4), o northpole fornece uma taxa de transferência 36,0 vezes maior; na taxa de transferência l4 mais alta (menos de 50 milissegundos por token, ponto p1), o northpole fornece uma latência 46,9 vezes menor. o consumo de energia da gpu usado para calcular cada métrica de eficiência energética é mostrado na tabela i. como não há instrumentação disponível para medir o consumo real de energia para diferentes tamanhos de lote, a mesma potência é usada para todos os tamanhos de lote, o que pode subestimar a métrica de eficiência energética, mas os resultados qualitativos ainda são válidos.

arquitetura do pólo norte

conforme mostrado na figura 3, o processador northpole é fabricado com tecnologia de processo de 12 nanômetros, possui 22 bilhões de transistores e tem uma área de 795 milímetros quadrados. sua arquitetura é inspirada no cérebro, otimizada para silício e derivada de dez axiomas de design complementares que abrangem computação, armazenamento, comunicação e controle, permitindo que a northpole supere significativamente outras arquiteturas em tarefas padrão de inferência de ia.ele tem um bom desempenho mesmo quando comparado a processadores fabricados com tecnologias de processo mais avançadas.

para axiomas detalhados da arquitetura northpole, consulte [11], [12]. simplificando, northpole organiza 256 núcleos modulares em uma matriz bidimensional 16×16. cada núcleo contém um multiplicador de matriz vetorial (vmm) que executa 2.048, 4.096 e 8.192 operações por ciclo com precisão int8, int4 e int2, respectivamente. a computação principal também inclui uma unidade vetorial fp16 de 4 vias e 32 fatias e uma unidade de função de ativação de 32 fatias. o array principal possui um total de 192 mb de sram, com cada núcleo equipado com 0,75 mb de sram. a memória no chip está fortemente acoplada à unidade de computação e à lógica de controle, com uma largura de banda total de 13 tb/s entre a memória central e a computação. além disso, cada núcleo possui 4.096 fios que se cruzam horizontalmente e verticalmente para passagem de parâmetros, instruções, valores de ativação e somas parciais através de quatro redes dedicadas em um chip (nocs).para evitar travamentos, um buffer de quadro no chip é equipado com 32 mb de sram, desacoplando a comunicação fora do chip de dados de entrada e saída da computação no chip do array principal.

figura 3: processador northpole: silício (esquerda), matriz (meio), módulo empacotado (direita).

equipamento

a northpole prototipou o design em uma placa pcie gen3 × 8, mostrada na figura 4, com 16 placas instaladas em um servidor 2u pronto para uso para formar um protótipo de dispositivo de inferência de pesquisa, mostrado na figura 5. o servidor contém dois processadores intel xeon gold 6438m, cada um com 32 núcleos e 60 mb de cache, com clock de 2,2 ghz. o sistema também vem com 512 gb de memória ddr5 de 4.800 mhz. dois barramentos pcie gen5 × 16 estão conectados a cada processador do servidor, fornecendo um total de 256 gb/s de largura de banda pcie (bidirecional). esses quatro barramentos são estendidos aos 16 slots pcie do sistema por meio de pontes pcie, com uma placa northpole instalada em cada slot. essas 16 placas northpole usam até metade da largura de banda pcie disponível de 256 gb/s.

figura 4: placa pcie northpole.

figura 5: vista explodida do protótipo de pesquisa mostrando a instalação de 16 placas northpole pcie. as placas northpole podem se comunicar com o host por meio do modelo de endpoint pcie padrão ou de maneira direta e mais eficiente entre si por meio de recursos de hardware adicionais em cada placa.

o sistema executa o red hat enterprise 8.9 e o northpole usa um driver de kernel vfio integrado para que o software do espaço do usuário possa gerenciar o hardware. o sistema usa iommu para gerenciamento de tradução de endereços e permite recursos de segurança, como isolamento de dispositivos e virtualização, para executar aplicativos usando máquina virtual ou tecnologia de contêiner.

cada placa northpole recebe e transmite dados através de um mecanismo dma que reside em cada placa. esses motores dma funcionam de forma independente e podem receber e transmitir simultaneamente tensores de várias maneiras. o primeiro método é o modelo de endpoint pcie padrão, onde o programa host lê a entrada da memória do host por meio do mecanismo dma e grava os tensores de volta na memória do host após a conclusão do cálculo. a segunda abordagem aproveita recursos de hardware adicionais em cada placa para permitir que as placas northpole se comuniquem diretamente entre si por meio de pcie, sem a necessidade de transferências entre a memória do host ou gerenciamento de software adicional em tempo de execução. a comunicação direta entre o pólo norte permite que modelos maiores abranjam vários chips do pólo norte, ao mesmo tempo que reduz a latência de comunicação e a sobrecarga causada por um sistema de gerenciamento puramente de software.

mapeando llms para dispositivos northpole

a estratégia para mapear llms, ilustrada na figura 6, é inspirada em três observações principais. primeiro, para modelos suficientemente grandes, toda a camada do transformador pode caber inteiramente na memória de um único chip northpole ("w4a4") usando pesos, ativações e buffers kv no formato int4, enquanto a camada de saída pode caber em dois no chip. em segundo lugar, se os caches de peso e kv residirem inteiramente no chip, o tempo de execução só precisará transferir pequenos tensores incorporados entre as camadas, o que está dentro da largura de banda do pcie gen3 × 8. terceiro, os protótipos de dispositivos northpole podem ser facilmente montados instalando 16 placas northpole pcie em um servidor pronto para uso.

isso sugere uma estratégia de mapear cada camada do transformador para sua respectiva placa northpole, empregando paralelismo de pipeline no estilo gpipe, e dividir a camada de saída entre as duas placas northpole, usando paralelismo de tensor, via pcie gen3 × 8 envia o tensor de incorporação entre as camadas.durante a inferência, um pequeno lote de solicitações do usuário (por exemplo, n solicitações) é dividido em m microlotes iguais e canalizado através de 16 cartões northpole.

embora o paralelismo do pipeline tenha sido explorado no treinamento de llms (sem restrições de latência), seu uso na inferência foi limitado pelo tamanho do lote necessário para reduzir o tempo ocioso de cada estágio do pipeline ou bolhas do pipeline. por exemplo, alguns estudos descobriram que o treinamento eficiente requer que o número de microlotes m seja aproximadamente quatro vezes o número de estágios do pipeline. o tamanho n do minilote é limitado (a) pela latência por token exigida pelo sistema e (b) pela memória disponível para o cache kv armazenar todo o minilote. a computação de baixa latência e 13 tb/s de largura de banda de memória no chip permitem que a northpole atinja latência por token extremamente baixa, portanto, o fator limitante ao escolher n é a memória usada para armazenar todo o cache kv no chip. além disso, descobrimos que o número de microlotes m igual ao número de estágios do pipeline é suficiente para tornar o tempo ocioso do pipeline insignificante.

nos experimentos relatados neste artigo, escolhemos um tamanho de minilote de n = 28, dividido em m = 14 microlotes iguais, resultando em um tamanho de microlote de 2 para cada cálculo do cartão northpole. nossas escolhas de projeto arquitetônico para computação eficiente em lotes tão pequenos são essenciais para alcançar a eficiência mostrada na figura 1 e na tabela i.

modelo llm e método de treinamento

um

modelo llm

o modelo usado para testar nosso sistema é baseado no modelo ibm granite-8b-code-base de código aberto, que é um transformador-decodificador de 8 bilhões de parâmetros contendo 36 camadas de transformador com um tamanho de camada oculta de 4096 e um tamanho de camada intermediária ffn é 14.336, o número de cabeças de atenção é 32, o número de cabeças de valor-chave usando grouped query attention (gqa) é 8 e o tamanho do vocabulário é 49.152. para caber em um único servidor com 16 placas northpole, usamos uma versão de 3 bilhões de parâmetros do modelo com 14 camadas de transformador e uma camada de saída, quantizada com precisão w4a4, mas fora isso a estrutura permaneceu inalterada.

notavelmente, esta configuração de modelo corresponde ao llama 3 8b [13] e ao mistral 7b [14] por camada, diferindo apenas no número de camadas, tamanho do vocabulário do modelo e dados de treinamento usados.

b

treinamento com total precisão

para restaurar a precisão da tarefa do modelo original após a quantização, o seguinte procedimento foi adotado para criar os pesos do modelo. primeiro, um modelo de linha de base é treinado do zero com base em 1 trilhão de tokens de código em 116 idiomas, usando precisão total do fp16, seguindo a receita de [4]. em seguida, os pesos e entradas da camada de saída do modelo de linha de base e as ativações silu foram quantizados em int8, enquanto todos os outros pesos, entradas da camada linear e entradas de multiplicação de matriz foram quantizados em int4. finalmente, a precisão da quantificação pós-recuperação foi quantificada realizando treinamento com reconhecimento de quantização em mais 8,5 bilhões de tokens do subconjunto da linguagem python dos dados de treinamento, com uma taxa de aprendizado de 8×10⁻⁵ e um tamanho de lote de 128, usando o algoritmo lsq. o tamanho do passo que ativa o quantizador é treinado usando uma inicialização a quente, que aumenta a taxa de aprendizado em um fator de 200 nas primeiras 250 etapas do treinamento para ajudar na rápida adaptação aos dados.

o modelo fp16 de linha de base rodando em gpu e o modelo quantizado rodando em northpole alcançaram precisão pass@10 em humanevalsynthesize-python dentro de 0,01 (0,3001 gpu vs. 0,2922 northpole. comparável ao modelo granite-8b-code-base então, o treinamento geral é reduzido focar na caracterização do desempenho do hardware em vez de ultrapassar os limites da precisão da tarefa.

aplicativo de tempo de execução

durante a inferência, conforme mostrado na figura 6, os tokens são gerados por um aplicativo de usuário altamente pipeline executado na cpu host, que pré-processa o texto em tensores de entrada usando tokenizadores e camadas de incorporação e coloca os tensores de entrada na primeira placa northpole no dispositivo , recebe o tensor de saída resultante da última placa northpole no dispositivo, pós-processa o tensor de saída usando um decodificador e destokenizador e faz um loop do token resultante como a próxima entrada. o aplicativo do usuário também é responsável pela interface do usuário, bem como por otimizações mais avançadas, como pré-preenchimento de prompt.

para descarregar a carga de trabalho da rede neural para northpole, o aplicativo do usuário chama uma biblioteca de tempo de execução do espaço do usuário com uma api simples, configura os pesos da camada da placa northpole e o cache kv no tempo de inicialização e envia e recebe tensores de entrada e saída em tempo de execução.os pesos e o cache kv são configurados para permanecer na memória do chip e não precisam ser transmitidos para fora do chip em tempo de execução. a biblioteca de tempo de execução também gerencia o buffer de quadros no chip para evitar que o núcleo northpole pare devido à falta de dados de entrada ou de receptores de dados de saída. tensores intermediários são passados ​​entre cartões sem intervenção do host, conforme descrito na seção 4.

resultados de desempenho

o dispositivo de 16 cartões northpole alcançou uma taxa de transferência de 28.356 tokens/segundo em um llm de 3 bilhões de parâmetros. o comprimento da sequência deste llm é configurado como 2.048 (1.024 comprimentos de dica, 1.024 tokens gerados) e o decodificador usa amostragem gananciosa.

para comparação com gpus, medimos o desempenho de placa única de duas gpus para inferência de baixo consumo de energia (l4 e l40s) e duas gpus para treinamento de alto rendimento (a100 e h100).todos os sistemas executam o mesmo modelo e configuração llm, com northpole rodando com precisão w4a4 e a gpu rodando com precisão w4a16 ideal, já que, até onde sabemos, não há núcleos cuda w4a4 disponíveis.em nossos experimentos de gpu, aproveitamos o modelo de quantização gptq e o comparamos usando o núcleo marlin vllm (versão 0.5.4) para comparação com northpole. o uso da quantização gptq fornece desempenho ideal de inferência de modelo na gpu, reduzindo a precisão do peso e mantendo uma precisão aceitável. além disso, os núcleos marlin são usados ​​para otimizar operações de matrizes, especialmente ao lidar com multiplicações de matrizes esparsas e densas. a avaliação comparativa do tempo de execução do vllm nos permite avaliar o rendimento e a latência, garantindo o desempenho ideal do modelo para uma determinada configuração de hardware. em experimentos com múltiplas placas gpu, o paralelismo tensor igual ao número de placas disponíveis foi empregado para obter efetivamente a menor latência possível no nvlink. nossos experimentos mostram que, embora a tecnologia de sharding reduza a latência, ela leva a uma diminuição no rendimento da gpu por placa. é importante notar que o desempenho superior do northpole vem principalmente de sua enorme largura de banda de memória no chip e, secundariamente, de sua menor precisão.

a tabela i mostra os resultados de desempenho medidos para sistemas northpole e gpu por placa. as métricas básicas incluem métricas de rendimento, latência, espaço e energia, definidas abaixo.

o número total de tokens gerados para pequenos lotes de prompts de entrada é:

entre eles, mmm é o número de microlotes e tok_seq_len é o número de tokens de saída gerados por um único usuário. a taxa de transferência do sistema é o número total de tokens gerados em resposta aos prompts de entrada (geração de tokens), dividido pelo tempo total necessário para processar o prompt, incluindo o tempo de pré-preenchimento do prompt (tempo de prompt) e o tempo de geração de token (tempo de geração de token):

a taxa de transferência é comparada por cartão dividindo a taxa de transferência do sistema pelo número de placas de processamento no sistema:

a latência é uma medida do tempo médio entre os tokens de saída gerados por um usuário específico e é a soma do tempo que leva para um token incorporado fluir através do pipeline de processamento, mais o tempo de pré-preenchimento do prompt amortizado sobre o número total de tokens gerados:

da mesma forma, combinando as equações 1, 2 e 4:

onde tamanho do minilote = tamanho do minilote observe que esta é a latência do sistema vista por cada usuário.

normalizadas pelo número de cartões no sistema, estendemos as métricas de espaço e energia definidas em [11] para poder comparar sistemas com diferentes números de cartões. as métricas de espaço e energia resultantes são o rendimento por placa, normalizado pelo número de transistores do processador por placa e pela potência por placa, respectivamente:

se a taxa de transferência do sistema for proporcional ao número de placas de pipeline no sistema, a normalização das placas será compensada, deixando as métricas de espaço e energia constantes com o número de placas no sistema. normalmente, o rendimento do sistema é dimensionado sublinearmente com o número de cartões devido à sobrecarga de comunicação e sincronização.

para concluir

fazemos as seguintes contribuições:

demonstramos um protótipo de pesquisa do dispositivo doka northpole.

mostramos que grandes modelos de redes neurais como llm podem ser divididos com eficiência em vários processadores northpole, estendendo nosso trabalho anterior que mostrou que um único processador northpole tem melhor desempenho em tarefas de inferência visual (resnet50, yolo-v4).

demonstramos que a arquitetura exclusiva da northpole é adequada para inferência llm, permitindo que ela supere significativamente as gpus de borda e de data center nos objetivos duplos de baixa latência e alta eficiência energética.

como o dispositivo northpole deve ser usado como uma unidade, ele é mais eficiente para aplicações de alto rendimento.

este artigo preliminar fornece um trampolim para pesquisas futuras sobre otimização de eficiência energética, mapeamento de llms maiores em dispositivos northpole correspondentemente maiores, novos modelos llm co-otimizados com a arquitetura northpole e futuras arquiteturas de sistemas e chips.