Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetro apaf@cin.ufpe.br Orientadora: Edna...

Preview:

Citation preview

Geração automática de RNAs MLP utilizando FPGA Antonyus Pyetroapaf@cin.ufpe.br

Orientadora:Edna Barros - ensb@cin.ufpe.br

Roteiro

•Motivação•Rede neural artificial•Projeto de RNAs em FPGA•Análise dos Resultados•Trabalhos relacionados•Trabalhos futuros

Motivação

Motivação

•RNAs – processamento paralelo e distribuído▫Usada em muitas áreas do conhecimento

processamento de sinais, análise de imagens médicas, sistemas de diagnóstico e previsões de séries temporais

▫Implementações em software – seqüenciais

•FPGAs – provêm paralelismo de hardware▫Paralelismo de processo e dados▫Alto poder de processamento e baixo custo

Motivação

•Objetivos: ▫Definição de uma arquitetura de RNAs para

hardware (inicialmente para aprendizado Off-line)

▫Implementação em FPGA

▫Validar com um modelo em software

▫Comparar desempenho

Rede neural artificial

•Inspirado no modelo biológico▫Processamento do cérebro é inerentemente

paralelo e distribuído•Aprendem através de exemplos•Adaptabilidade•Capacidade de generalização•Tolerância a falhas

Neurônio artificial

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) }

RNA - topologia

Exemplo de RNA

•Problema: Diabetes•Atributos de entrada: 5•Classes: 2•Exemplos de testes: 384•Topologia: 5:2:2•Função de transferência

▫Sigmóide

Projeto de RNAs em FPGA

•Desafios:

▫Aritmética de ponto flutuante Vs Ponto Fixo

▫Como implementar a sigmóide em FPGA? Φ(u) = 1 /( 1 + exp(−u) )

Ponto Flutuante Vs Ponto Fixo

•Ponto flutuante:▫Menor precisão▫Range dinâmico ▫Menor tempo de desenvolvimento

•Ponto fixo▫Menor custo do produto final▫Maior velocidade▫Introduz oscilação na fase de aprendizado

Implementação da sigmóide

•Implementação direta em hardware▫Φ(u) = 1 /( 1 + exp(−u) )

•Implementação da expansão em série

•Implementação por Look up table

• Implementar versão aproximada

Comparação

Método erro médio erro max Suave Rápido

1ª ordem

otimizado

1.4539e-

017

0.0194 sim não

1ª ordem simples 8.9214e-

018

0.0189 não sim

2ª ordem simples 8.5910e-

018

0.0215 sim sim

Implementação do Neurônio

•Cálculo do estado de ativação▫Um somador e um multiplicador

Nº entradas

Função Operações

2 X1 x W1 + X2 x W2 + W0 X X ++

3 X1xW1 + X2xW2 + X3xW3 + W0 X X X +++

4 X1xW1 + X2xW2 + X3xW3 + X4xW4 +W0

X X X X +++ +

Implementação do Neurônio

•Neurônio com pesos parametrizados

Implementação da Rede Neural

384 exemplos

299,45μs

•Controle seqüencial

Implementação da Rede Neural

384 exemplos

165,38μs

•Controle paralelo

Rede neural - XOR

Análise de resultados

•Estudo de caso: Diabetes▫2 classes, 5 entradas, 384 exemplos de

teste•Modelos

▫Matlab script – sigmóide real, aproximado▫Em FPGA▫Em software – C++

•Metodologia de teste▫Comparar saídas e obter o erro

Análise de resultados

•Erro▫Matlab sigmóide real Vs sigmóide

aproximada Erro máximo: 0.0239 médio: 0.0160

▫Matlab sigmóide real Vs software – C++ Erro máximo: 0.5042e-006

▫Em FPGA Vs Matlab sigmóide aproximada Erro máximo: 0.01627

▫Em FPGA Vs Matlab sigmóide real Erro máximo: 0.04017

Tempo de execução

• implementação em C++ (AMD Athlon 64 3200+ 2.20GHz com 512 MB de memória )▫23ms

•Em FPGA – fmax = 160MHz▫Controle sequencial

299,45μs (76,8 vezes mais rápido)▫Controle paralelo

165,38μs (139 vezes mais rápido)

Área

•Área total (FPGA STRATIX II EP2S60F672C5ES): ▫16% lógica combinacional do▫5% memória▫11% blocos DSP de 9-bits

Trabalhos relacionados

Aproach Performance Speed up

PC 23ms 1x

Related work1 na 38x

Related work2 71ns(average) vs

43,07ns(our)

na

Our (sequencial) 299,45μs 76,8x

Our (parallel) 165,38μs 139x

Trabalhos futuros

•Introduzir o aprendizado online no FPGA•Abranger outros tipos de redes inclusive

as de estrutura dinâmicas (reconfiguração dinâmica).

•Framework ▫Entrada: topologia da rede (treinada ou

não); pesos;

▫Saída: código HDL ▫Vantagem: encapsula-se todo o projeto da

implementação em hardware

Proposta de Trabalho

•Escopo▫Geração automática de código a partir da

Ferramenta CAD de RNA (Matlab, Weeka, Scilab, Tanagra, etc)

▫ Garantir transparência e parametrização para o projetista de IA

Análise de Resultados• Comparativo qualitativo em relação às

implementações de RNA em FPGA (função de ativação, uso de ponto flutuante vs ponto fixo, etc)

• Comparativo quantitativo▫ Abordagens em FPGA - Tempo de processamento,

área e throughput▫ Abordagens em GPU - Tempo de processamento,

desempenho / custo da solução, desempenho / watt.

Perguntas!

Recommended