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.

Slides:



Advertisements
Apresentações semelhantes
REDES NEURAIS ARTIFICIAIS: uma aplicação do tipo perceptron multilayer na identificação de impressões digitais Acadêmico: José Mário Pereira Dantas Orientador:
Advertisements

MATRIZES DE PORTAS PROGRAMÁVEIS NO CAMPO (FPGA)
Transmissão de pacotes
Adélia Barros Testes de Software Adélia Barros
Conversores A/D e D/A Conversor analógico-digital (ADC) e conversor digital-analógico (DAC) são usados para interfacear um computador com o mundo analógico.
Engenharia de Software
Redes Neurais Artificiais (RNA): Introdução
Redes Neurais Artificiais (RNA): Aprendizado
RECONHECIMENTO DE CARACTERES MANUSCRITOS APLICANDO REDES NEURAIS
Projecto de Hardware com FPGAs
Dispositivos lógicos programáveis (DLP)
REDES NEURONAIS ARTIFICIAIS (RNAs) Universidade do Minho.
ARQUITETURA DE COMPUTADORES II
Redes Neurais Artificiais
Introdução à Informática
Aspectos da Implementação de Redes Neurais
6. Estruturas p/ Sistemas Discretos
Cérebro Artificial Intelligence, a modern approach
Germano C. Vasconcelos Centro de Informática - UFPE
Inteligência Artificial
Conceitos Básicos de Informática INTRODUÇÃO À TERMINOLOGIA BÁSICA
Lista de Exercícios de Redes Neurais - Sistemas Inteligentes -
PSEUDO-ONLINE TESTING METHODOLOGIES FOR VARIOUS COMPONENTS OF FIELD PROGRAMMABLE GATE ARRAYS L. Kalyan Kumar, Aditya S. Ramani, Amol J. Mupid, V. Kamakoti*
Dispositivos de Lógica Programável
Polliana Corrêa Morais (bolsista); Leandro Osmar Werle (colaborador/
Linguagens de Programação
Circuitos combinatórios
INF 1771 – Inteligência Artificial
Davyd Bandeira de Melo Um Sistema de Reconhecimento de Comandos de Voz Utilizando a Rede Neural ELM Junho 2011.
Inteligência Artificial Redes Neurias
Sistemas de Informação Inteligentes
Implementação de Redes Neurais para Classificação de Odores
Antonyus Pyetro Infra-estrutura de Hardware – IF674
Antonyus Pyetro Infra-estrutura de Hardware – IF674
Dispositivos Lógicos Programáveis (DLP) Ideia e Arquiteturas
Geração automática de RNAs MLP utilizando FPGA
Sistemas Operacionais
Redes Neurais Prof. Alex F. V. Machado.
GERENCIAMENTO DE REDES UTILIZANDO O PROTOCOLO SNMP
MO801 - Tópicos em Arquitetura e Hardware Michele Tamberlini 05/2006
SBRN’02 - Simpósio Brasileiro de Redes Neurais
Desenvolvimento de um Controle Reconfigurável para Sistemas de Tempo Real Crítico Sistema para aplicações em Mecatrônica e Automobilística.
Tópicos especiais em controle inteligente e distribuído Professor: Jorge Dantas de Melo Rafael Marrocos Magalhães.
Computação Gráfica Aula 3 Transformações Geométricas
Pet computação UFPE Aula de apoio aos feras: Arquitetura de Computadores.
2005 Cin - Centro de Informática - Universidade Federal de Pernambuco – UFPE Iniciação Científica Visual # Tool Bolsista: Rodrigo Cavalcante Mendes Orientadores:
Projeto de Redes Neurais e MATLAB
Redes Neuronais/Neurais/ Conexionistas Introdução
Arquitetura de Computadores
Redes Neurais Artificiais
Sistemas Operacionais
Organização e Arquitetura de Computadores
Extração de Regras de RNA Wilian Soares Lacerda Fevereiro de 2003.
Lógica Programável PTC2527 – EPUSP Guido Stolfi.
(OU) Hardware da Rede Implementacao da rede
MO801: Tópicos em Arquitetura e Hardware 1 Tópicos em System-Level Design Tecnologia de Projeto Sandro Rigo
Redes Neurais Artificiais. Introdução RNA são modelos matemáticos que se assemelham às estruturas neurais biológicas Capacidade computacional adquirida.
Transformada Rápida de Fourier para FPGA
José Reinaldo Lemes Júnior Orientador: Prof. Wilian Soares Lacerda.
Sistemas Digitais Somadores.
Universidade Federal de Lavras Departamento de Ciência da Computação
Tópicos em System-Level
Arquitetura de Sistemas Embarcados
Implementação de uma arquitetura de Redes Neurais MLP utilizando FPGA
Redes Neurais Treinamento de MLP. Treinamento Divisão das entradas Parâmetros de treinamento –350 iterações –Nº de nós da camada interna (26, 46, 92)
Engenharia de Software
O Que São as Redes Neurais Artificiais
Inteligência Artificial
Redes Neurais Artificiais Prof. Júlio Cesar Nievola PPGIA – PUCPR Especialização em Inteligência Computacional.
1 Projeto Híbrido de Redes Neurais Ricardo Bastos C. Prudêncio Orientação: Teresa B. Ludermir CIn - UFPE Jan
Transcrição da apresentação:

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

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

Motivação Por que FPGAs? Por que RNAs em FPGA? 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

Motivação Implementação de RNAs em FPGA Vantagens Desvantagens 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

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

Fluxo de projeto de RNAs Projetista de IA Projeto CAD da RNA Implementação em SW Implementação em HW Projetista de IA ou de SW Manual Engenheiro de HW

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 Implementação em HW

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

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

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

Desempenho esperado n é normalmente pequeno (menos de 20) 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

Camada – 4 neuronios 4 entradas

Camada – 4 neuronios 5 entradas

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

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

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

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

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.03 Iris 150 4-8-3-3 14 0.517 0.019463 26.56 300 1.0 0.037963 26.34 600 2.0 0.074963 26.67 Semeion 1593 256-10-10 20 50.07 13.605 3.68 Semeion2 6.808 8.10 Semeion3 1.371 36.52

Resultados - área Adders ALUTs Registers Memory Bits DSP blocks Sinusoid 4 4591(12%) 5294(14%) 116405(2%) 8(2%) Iris 9 8782(23%) 9791(26%) 181901(3%) 12(3%) Semeion 12 11297(30%) 10967(29%) 521847(10%) FPGA - EP3SL50F484C2

Perguntas!