23
A High performance full pipelined arquitecture of MLP Neural Networks in FPGA Antonyus Pyetro [email protected] Orientadora: Edna Barros - [email protected]

A High performance full pipelined arquitecture of MLP Neural Networks in FPGA Antonyus Pyetro [email protected] Orientadora: Edna Barros - [email protected]

Embed Size (px)

Citation preview

Page 1: A High performance full pipelined arquitecture of MLP Neural Networks in FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

A High performance full pipelined arquitecture of MLP Neural Networks in FPGAAntonyus [email protected]

Orientadora:Edna Barros - [email protected]

Page 2: A High performance full pipelined arquitecture of MLP Neural Networks in FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Roteiro

•Motivação•Rede neural artificial•Fluxo de Projeto de RNAs•Trabalho relacionado•Arquitetura proposta•Resultados

Page 3: A High performance full pipelined arquitecture of MLP Neural Networks in FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Motivação

•Por que se usa RNAs?▫Inspirado no modelo biológico▫Aprendem através de exemplos▫Capacidade de generalização▫Tolerância a falhas e a ruído

Page 4: A High performance full pipelined arquitecture of MLP Neural Networks in FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Motivação

•Por que FPGAs?▫Paralelismo de processo e dados▫Alto poder de processamento▫Possibilidade de customização do HW

•Por que RNAs em FPGA?▫Processamento inerentemente paralelo e

distribuído▫Implementações em software – seqüênciais

Page 5: A High performance full pipelined arquitecture of MLP Neural Networks in FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Motivação

•Implementação de RNAs em FPGA▫Vantagens

Aumento da capacidade de processamento Aplicações em tempo real e críticas

Reduzir o consumo de potência Aplicações embarcadas

▫Desvantagens Maior custo do hw Implementação complexa

Page 6: A High performance full pipelined arquitecture of MLP Neural Networks in FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Neurônio artificial

Page 7: A High performance full pipelined arquitecture of MLP Neural Networks in FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Neurônio– função de ativação

•Algumas funções de limiar usadas são:▫Função degrau unitário;

Φ(u) = 1 se u > 0, Φ(u) = 0, caso contrário

▫Função rampa unitária Φ(u) = max{0.0, min{1.0, u + 0.5}}

▫Função sigmóide logística Φ(u) = a /{ 1 + exp(−bu) }

Page 8: A High performance full pipelined arquitecture of MLP Neural Networks in FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

RNA - topologia

Page 9: A High performance full pipelined arquitecture of MLP Neural Networks in FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Projeto CAD da RNA

Implementação em SW

Implementação em HW

Fluxo de projeto de RNAs

Projetista de IAProjetista de IA ou de SW

Engenheiro de HW

Manual

Page 10: A High performance full pipelined arquitecture of MLP Neural Networks in FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Fluxo de Projeto

Implementação em HW

Projeto da arquitetura

de HW

Especificação em HDL

Verificação funcional

Síntese

Simulação Timing

Prototipação em FPGA

Page 11: A High performance full pipelined arquitecture of MLP Neural Networks in FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Trabalho relacionado

•VANNGen: a Flexible CAD Tool for Hardware Implementation of Artificial Neural Networks▫Geração automática da RNA▫Necessita do projetista de HW

Ponto fixo Vs ponto flutuante, precisão, etc... ▫Não permite integração das ferramentas

CAD de RNA▫Edição manual do arquivo de configuração

Page 12: A High performance full pipelined arquitecture of MLP Neural Networks in FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Arquitetura convencional• Computação do estado de ativação para cada

camada

, m somas de m+1 produtos para cada n

• Instanciando m+1 multiplicadores e m somadores

n * m ciclos

Page 13: A High performance full pipelined arquitecture of MLP Neural Networks in FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Arquitetura Proposta

•Computar produto coluna x linha▫W11•X1, …, Wn1•X1 ▫Depois somar com o resultado

da prox. Coluna▫Alinhar 2 a 2 até que todo somatório esteja

computado

Page 14: A High performance full pipelined arquitecture of MLP Neural Networks in FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Desempenho esperado• Computa-se o produto em

ciclos ▫n é normalmente pequeno (menos de 20)

• Recursos▫ somadores e 1 multiplicador▫1 única entrada por vez é necessária▫1 única saída por vez necessaria

• Taxa de computação▫n*m ciclos se m é par e n*(m+1) se m

impar

Page 15: A High performance full pipelined arquitecture of MLP Neural Networks in FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Camada – 4 neuronios 4 entradas

Page 16: A High performance full pipelined arquitecture of MLP Neural Networks in FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Camada – 4 neuronios 5 entradas

Page 17: A High performance full pipelined arquitecture of MLP Neural Networks in FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

A função de ativação

•É uma função complexa ▫Φ(u) = a /{ 1 + exp(−bu) }

•A computação em hw é muito custosa▫Aproximações▫Look-up tables

Page 18: A High performance full pipelined arquitecture of MLP Neural Networks in FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Solução proposta

•Na arquitetura proposta▫Toda camada fornece 1 saída e necessita de

1 entrada por vez▫Necessita de apenas uma estrutura para

computar a função de ativação

Page 19: A High performance full pipelined arquitecture of MLP Neural Networks in FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Solução proposta

• x = [a,b] , discreto com passo 1/k então temos de x para armazenar

• Para um dado x, resulta na posição de x no vetor [a,b]

• Se k = 2z o termo x*k basta adicionar Z no expoente de x• Uma única soma de ponto flutuante necessária sem necessidade

de realizar busca binária

Page 20: A High performance full pipelined arquitecture of MLP Neural Networks in FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Problemas e soluções

•Recursos de interconexões, nr pinos e fan-out▫Na nova arquitetura O(1) vs O(m)▫Quantidade de pinos fixa

•Consumo de lógica▫Consumo de somadores segue a lei

•Compromisso área / desempenho▫Datapath pode ser replicado para melhorar

performance – divisores de n

Page 21: A High performance full pipelined arquitecture of MLP Neural Networks in FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Resultados - desempenho

•Testadas 3 redes neurais▫2 classificação▫ 1 aproximação da função

samples topology Neurons Sw (ms) Hw (ms) Speed-up

Sinusoid 249 1-5-1 6 0.345 0.010137 34.03Iris 150 4-8-3-3 14 0.517 0.019463 26.56Iris 300 4-8-3-3 14 1.0 0.037963 26.34Iris 600 4-8-3-3 14 2.0 0.074963 26.67Semeion 1593 256-10-10 20 50.07 13.605 3.68Semeion2 1593 256-10-10 20 50.07 6.808 8.10Semeion3 1593 256-10-10 20 50.07 1.371 36.52

Page 22: A High performance full pipelined arquitecture of MLP Neural Networks in FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Resultados - área

Adders ALUTs Registers MemoryBits

DSPblocks

Sinusoid4 4591(12

%)5294(14%)

116405(2%) 8(2%)

Iris9 8782(23

%)9791(26%)

181901(3%) 12(3%)

Semeion12 11297(30

%)10967(29%)

521847(10%) 8(2%)

FPGA - EP3SL50F484C2

Page 23: A High performance full pipelined arquitecture of MLP Neural Networks in FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna Barros - ensb@cin.ufpe.br

Perguntas!