Comparando Computação em Memória Analógica e Digital
Uma olhada no AIMC e DIMC para tarefas de machine learning.
― 6 min ler
Índice
- AIMC vs. DIMC: Diferenças Principais
- Desafios Atuais na Computação em Memória
- A Necessidade de um Modelo de Desempenho Unificado
- Mergulho Profundo nas Cargas de Trabalho de Aprendizado de Máquina
- Tipos de Hardware Usados em IMC
- Hardware AIMC
- Hardware DIMC
- Avaliação de Desempenho
- Usando um Modelo a Nível de Sistema para Comparação
- A Importância da Eficiência da Carga de trabalho
- Explorando Aplicações do Mundo Real
- Analisando o Desempenho da Carga de Trabalho
- Conclusão
- Fonte original
- Ligações de referência
Computação em memória (IMC) é um processo onde os dados são armazenados e processados no mesmo lugar, reduzindo o tempo e energia gastos movendo dados por aí. Esse lance tá virando moda pra rodar tarefas de Aprendizado de Máquina, especialmente em dispositivos que têm pouca energia e espaço, tipo smartphones ou gadgets de IoT.
Tem dois tipos principais de projetos de IMC: Computação em Memória Analógica (AIMC) e Computação em Memória Digital (DIMC). Cada um tem suas vantagens e desvantagens, que a gente vai olhar de perto.
AIMC vs. DIMC: Diferenças Principais
AIMC processa informações de forma analógica. Isso significa que trabalha com sinais contínuos, o que permite um uso de energia bem eficiente e altos níveis de computação paralela. Mas, como opera no mundo analógico, pode sofrer com ruídos e imprecisões, que podem afetar os resultados.
Por outro lado, DIMC lida com sinais digitais. Isso significa que processa informações de uma forma mais confiável, garantindo resultados precisos. Mas isso vem com o custo de usar mais energia e pode não alcançar o mesmo nível de eficiência que o AIMC.
Desafios Atuais na Computação em Memória
O principal desafio ao comparar AIMC e DIMC é a variedade de designs de hardware e tecnologias disponíveis. Cada implementação pode ter estruturas, tamanhos e métodos de fabricação diferentes. Essa variedade torna difícil avaliar o verdadeiro desempenho e eficiência um em relação ao outro.
A maioria das pesquisas focou no desempenho máximo de um único design, em vez de como esses designs se saem em aplicações do mundo real.
A Necessidade de um Modelo de Desempenho Unificado
O objetivo aqui é criar uma forma de comparar AIMC e DIMC de forma mais efetiva. Um modelo de desempenho que leve em consideração diferentes configurações e cargas de trabalho vai ajudar a ver qual tipo é melhor em várias situações.
Esse modelo será apoiado por dados de implementações reais e vai explorar como esses designs se saem quando enfrentam tarefas reais de aprendizado de máquina.
Mergulho Profundo nas Cargas de Trabalho de Aprendizado de Máquina
As tarefas de aprendizado de máquina costumam consistir em camadas que trabalham juntas em sequência. Cada camada desempenha um conjunto de operações sobre as entradas para gerar saídas, geralmente na forma do que chamamos de tensores.
A computação em memória brilha ao lidar com operações como multiplicações matriz-vetor, que são comuns em aprendizado de máquina. Ao alinhar as tarefas com a arquitetura da memória, conseguimos acelerar significativamente os tempos de processamento e economizar energia ao reduzir o movimento de dados.
Tipos de Hardware Usados em IMC
O principal hardware usado para IMC inclui SRAM (Memória de Acesso Aleatório Estática), que é eficaz por sua durabilidade e eficiência. AIMC usa essa tecnologia para realizar cálculos no domínio analógico, enquanto DIMC a emprega para operações digitais.
Hardware AIMC
Nos sistemas AIMC, os pesos (ou valores) são pré-carregados em matrizes de memória, e os dados de entrada são processados como sinais analógicos. Isso significa que para cada elemento na entrada, o sistema realiza uma multiplicação com os pesos armazenados em uma única etapa.
Os resultados dessas multiplicações são coletados e convertidos de volta para um formato digital, permitindo a saída dos dados processados. Embora esse método seja eficiente em termos de energia, também é sensível ao ruído.
Hardware DIMC
No DIMC, os cálculos de multiplicação são feitos usando circuitos lógicos digitais. As operações são limpas e precisas, mas requerem mais energia. Os resultados digitais são enviados para registradores para armazenamento antes de serem usados novamente.
Esse processo depende muito da organização do hardware para ser eficiente. Sistemas digitais podem ter componentes maiores, o que pode desacelerar as coisas em comparação com seus homólogos analógicos.
Avaliação de Desempenho
Encontrar uma forma justa de testar e comparar o desempenho tanto do AIMC quanto do DIMC é importante. Muitos estudos existentes focaram em componentes ou designs isolados, mas é crucial olhar para todo o sistema de uma vez.
Para ter uma visão completa, precisamos avaliar quão bem esses sistemas se saem sob cargas de trabalho típicas em comparação com benchmarks isolados.
Usando um Modelo a Nível de Sistema para Comparação
Um bom modelo de desempenho deve considerar tanto os designs AIMC quanto DIMC. Esse modelo pode ajudar a avaliar como essas arquiteturas se saem com configurações e cargas de trabalho variadas.
Ao usar dados do mundo real de diferentes aplicações, podemos preencher as lacunas onde modelos teóricos podem falhar. Isso vai permitir uma melhor compreensão das forças e fraquezas de cada sistema.
Carga de trabalho
A Importância da Eficiência daAo avaliar qualquer sistema, é vital olhar para quão bem ele utiliza seus recursos. Para tanto AIMC quanto DIMC, diferentes cargas de trabalho podem afetar a eficiência.
Por exemplo, operações que permitem alta reutilização de dados dentro da memória podem levar a um desempenho melhor. Camadas que requerem atualizações frequentes ou movimentos limitados de dados tendem a se sair mal, pois podem causar atrasos desnecessários.
Explorando Aplicações do Mundo Real
Ao aplicar nosso modelo a cenários reais, como modelos de benchmarks MLPerf Tiny, conseguimos ver como diferentes tipos de camadas (camadas convolucionais, camadas ponto a ponto, etc.) influenciam a eficiência energética e de processamento.
Os resultados mostram que arquiteturas otimizadas para tarefas específicas (como camadas convolucionais) tendem a se sair melhor do que aquelas projetadas para tarefas mais genéricas (como camadas totalmente conectadas).
Analisando o Desempenho da Carga de Trabalho
O desempenho de cada arquitetura pode variar significativamente com diferentes cargas de trabalho. Por exemplo, modelos como ResNet8, que utilizam muitas camadas convolucionais, tendem a ter um desempenho melhor em comparação com outros que são densos em camadas totalmente conectadas.
Entender essas diferenças é essencial para otimizar a arquitetura com base na aplicação pretendida, seja para dispositivos de borda ou sistemas em nuvem.
Conclusão
A variedade de arquiteturas e as forças únicas do AIMC e DIMC apresentam tanto desafios quanto oportunidades no campo da computação em memória. Um modelo de desempenho unificado pode preencher a lacuna em pesquisas existentes, permitindo comparações mais eficazes e preparando o terreno para futuros avanços.
Ao focar em aplicações do mundo real e na eficiência das cargas de trabalho, podemos tomar decisões informadas sobre qual arquitetura usar, abrindo caminho para designs mais inteligentes e eficientes na tecnologia.
Título: Analog or Digital In-memory Computing? Benchmarking through Quantitative Modeling
Resumo: In-Memory Computing (IMC) has emerged as a promising paradigm for energy-efficient, throughput-efficient and area-efficient machine learning at the edge. However, the differences in hardware architectures, array dimensions, and fabrication technologies among published IMC realizations have made it difficult to grasp their relative strengths. Moreover, previous studies have primarily focused on exploring and benchmarking the peak performance of a single IMC macro rather than full system performance on real workloads. This paper aims to address the lack of a quantitative comparison of Analog In-Memory Computing (AIMC) and Digital In-Memory Computing (DIMC) processor architectures. We propose an analytical IMC performance model that is validated against published implementations and integrated into a system-level exploration framework for comprehensive performance assessments on different workloads with varying IMC configurations. Our experiments show that while DIMC generally has higher computational density than AIMC, AIMC with large macro sizes may have better energy efficiency than DIMC on convolutional-layers and pointwise-layers, which can exploit high spatial unrolling. On the other hand, DIMC with small macro size outperforms AIMC on depthwise-layers, which feature limited spatial unrolling opportunities inside a macro.
Autores: Jiacong Sun, Pouya Houshmand, Marian Verhelst
Última atualização: 2024-05-23 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2405.14978
Fonte PDF: https://arxiv.org/pdf/2405.14978
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.