Simple Science

Ciência de ponta explicada de forma simples

# Informática# Computação distribuída, paralela e em cluster# Inteligência Artificial# Arquitetura de Hardware

Executando Transformers no RISC-V: Uma Nova Abordagem

Execução eficiente de modelos de transformer em uma plataforma RISC-V de código aberto.

― 6 min ler


Transformers no RISC-VTransformers no RISC-Veficiente usando a arquitetura RISC-V.Execute modelos de IA de forma
Índice

Nos últimos anos, os modelos baseados em transformers se tornaram essenciais para várias tarefas, especialmente em processamento de linguagem e imagem. Eles geralmente rodam em placas gráficas poderosas ou em hardware especial feito só pra essas tarefas. Mas, pouca atenção foi dada ao uso do RISC-V, um tipo de plataforma de uso geral. Esse artigo discute como os modelos transformers podem ser executados de forma eficiente em uma plataforma RISC-V de código aberto com muitos núcleos pequenos.

O que são Transformers?

Transformers são modelos complexos que podem analisar e entender sequências de dados, como frases ou imagens. Eles fazem isso usando um método chamado "atenção", que ajuda o modelo a identificar quais partes da entrada são essenciais. Esses modelos podem aprender com uma quantidade enorme de dados sem precisar de exemplos rotulados, tornando-os muito versáteis.

Existem diferentes tipos de transformers. Alguns focam apenas em entender as entradas (modelos só de codificador), enquanto outros podem gerar saídas (modelos só de decodificador). A capacidade de gerenciar essas tarefas torna os transformers adequados para várias aplicações, como responder perguntas, traduzir idiomas ou até criar novos textos.

Desafios com Transformers

Embora os transformers tenham mostrado um desempenho excelente, eles trazem alguns desafios. Um problema significativo é a forma como lidam com as pontuações de atenção, que podem se tornar bem complexas à medida que a entrada cresce. O mecanismo de atenção calcula pontuações para cada elemento de entrada em relação aos outros, resultando em uma carga computacional pesada, especialmente com sequências mais longas.

Além disso, utilizar a operação Softmax para normalizar essas pontuações pode ser lento e complicado, principalmente para conjuntos de dados grandes. Isso cria a necessidade de métodos melhores para lidar com a atenção de uma forma que mantenha o desempenho enquanto é eficiente.

A Necessidade de Execução Eficiente

Com a crescente demanda por execução eficiente de transformers, muitas empresas desenvolveram hardware especializado. No entanto, isso muitas vezes limita a flexibilidade. O foco aqui é criar uma plataforma de código aberto que possa lidar tanto com as necessidades computacionais dos transformers quanto com a flexibilidade para se adaptar a cargas de trabalho em mudança.

O objetivo é estabelecer um ambiente onde os modelos possam rodar de forma eficiente sem estarem presos a um hardware específico. Usando uma plataforma RISC-V que aproveita muitos núcleos pequenos, podemos explorar novas maneiras de otimizar tanto o hardware quanto o software utilizados.

A Plataforma RISC-V

A arquitetura RISC-V é de código aberto e permite designs personalizados. Essa flexibilidade significa que podemos criar um sistema que atenda às necessidades dos modelos transformers. Nossa abordagem é utilizar uma configuração multi-core onde cada núcleo pode processar partes de um modelo de forma eficiente. Isso significa que podemos lidar com modelos complexos sem precisar dos recursos enormes tipicamente associados a eles.

Tendo muitos núcleos, conseguimos paralelizar tarefas efetivamente. Essa configuração permite que a plataforma gerencie múltiplas operações ao mesmo tempo, o que é especialmente útil para rodar modelos grandes como os transformers.

Design do Sistema

Arquitetura Multi-Core

Nosso sistema é construído em uma estrutura multi-core, onde cada núcleo pode lidar independentemente com tarefas de computação. Esse design permite que múltiplas operações ocorram simultaneamente, melhorando o desempenho geral. Cada grupo de núcleos é configurado para gerenciar diferentes partes dos modelos transformers, permitindo um carregamento eficiente de dados e processamento.

Instruções Especializadas

Para aumentar o desempenho, implementamos instruções especializadas dentro da nossa arquitetura RISC-V. Essas instruções ajudam a agilizar operações comuns necessárias para processar transformers, como lidar com cálculos de ponto flutuante e gerenciar fluxos de dados. Ao otimizar essas tarefas, conseguimos melhorar significativamente a eficiência da execução dos modelos.

Gerenciamento de Memória

Um gerenciamento de memória eficiente é crucial para rodar transformers. Nossa arquitetura inclui capacidades avançadas de transferência de dados, permitindo que os núcleos se comuniquem rapidamente entre si. Isso minimiza os atrasos que normalmente vêm com o acesso a memórias mais lentas.

O sistema usa uma mistura de memória compartilhada em chip e conexões com memória externa. Essa configuração permite acesso rápido a dados essenciais enquanto ainda tem espaço para conjuntos de dados maiores.

Resultados de Desempenho

Benchmarking com Modelos Fundamentais

Para avaliar nosso sistema, testamos com vários modelos fundamentais, incluindo transformers só de codificador e só de decodificador. Esses benchmarks nos permitem ver quão bem nossa plataforma se saiu comparada a configurações padrão.

Modelos Só de Codificador

Para os modelos só de codificador, conseguimos acelerações impressionantes em comparação com implementações baselines. As otimizações feitas para a arquitetura RISC-V nos permitiram alcançar taxas de utilização mais altas das unidades de ponto flutuante (FPU), o que significa que os núcleos estavam trabalhando de forma mais eficiente.

Modelos Só de Decodificador

No caso dos modelos só de decodificador, também vimos melhorias notáveis. Em diferentes modos de operação, nossa plataforma superou alternativas convencionais. Essa eficiência é atribuída às nossas instruções personalizadas e técnicas de gerenciamento de dados.

Contribuições Principais

  1. Biblioteca de Código Aberto: Criamos uma biblioteca abrangente de código aberto para implantar modelos transformers na arquitetura RISC-V. Essa biblioteca suporta tanto modelos só de codificador quanto só de decodificador, tornando-a versátil para várias aplicações.

  2. Aumentos de Desempenho: Nossos benchmarks mostram que usar instruções especializadas e técnicas de gerenciamento de memória pode levar a melhorias significativas de desempenho, chegando a até 35 vezes melhor em tempo de execução do que modelos baselines.

  3. Escalabilidade: A arquitetura é projetada para ser facilmente escalável. Isso significa que, à medida que as demandas ou complexidades dos modelos aumentam, nosso sistema pode se adaptar sem precisar de uma reformulação completa.

Conclusão

Através do nosso trabalho, mostramos que é possível rodar de forma eficiente modelos transformers de ponta em uma plataforma RISC-V flexível e de código aberto. A combinação de uma arquitetura multi-core, instruções especializadas e gerenciamento de memória eficiente oferece uma abordagem promissora para transformar a forma como lidamos com modelos em larga escala.

Os avanços feitos em nossa plataforma destacam o potencial para criar sistemas adaptáveis que podem acompanhar a evolução do cenário dos modelos de IA. O trabalho futuro se concentrará em melhorar ainda mais o fluxo de execução e explorar otimizações adicionais para manter essa flexibilidade e desempenho.

Essa pesquisa tem como objetivo abrir portas para mais pesquisadores e desenvolvedores experimentarem soluções de IA eficientes em um ambiente de código aberto, facilitando abordagens inovadoras em aprendizado de máquina e inteligência artificial.

Fonte original

Título: Optimizing Foundation Model Inference on a Many-tiny-core Open-source RISC-V Platform

Resumo: Transformer-based foundation models have become crucial for various domains, most notably natural language processing (NLP) or computer vision (CV). These models are predominantly deployed on high-performance GPUs or hardwired accelerators with highly customized, proprietary instruction sets. Until now, limited attention has been given to RISC-V-based general-purpose platforms. In our work, we present the first end-to-end inference results of transformer models on an open-source many-tiny-core RISC-V platform implementing distributed Softmax primitives and leveraging ISA extensions for SIMD floating-point operand streaming and instruction repetition, as well as specialized DMA engines to minimize costly main memory accesses and to tolerate their latency. We focus on two foundational transformer topologies, encoder-only and decoder-only models. For encoder-only models, we demonstrate a speedup of up to 12.8x between the most optimized implementation and the baseline version. We reach over 79% FPU utilization and 294 GFLOPS/W, outperforming State-of-the-Art (SoA) accelerators by more than 2x utilizing the HW platform while achieving comparable throughput per computational unit. For decoder-only topologies, we achieve 16.1x speedup in the Non-Autoregressive (NAR) mode and up to 35.6x speedup in the Autoregressive (AR) mode compared to the baseline implementation. Compared to the best SoA dedicated accelerator, we achieve 2.04x higher FPU utilization.

Autores: Viviane Potocnik, Luca Colagrande, Tim Fischer, Luca Bertaccini, Daniele Jahier Pagliari, Alessio Burrello, Luca Benini

Última atualização: 2024-05-29 00:00:00

Idioma: English

Fonte URL: https://arxiv.org/abs/2405.19284

Fonte PDF: https://arxiv.org/pdf/2405.19284

Licença: https://creativecommons.org/licenses/by/4.0/

Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.

Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.

Mais de autores

Artigos semelhantes