34
Do DRIP ao DRIP RTR Ivan Saraiva Silva

Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

Embed Size (px)

Citation preview

Page 1: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

Do DRIP ao DRIP RTR

Ivan Saraiva Silva

Page 2: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

DRIP - Dynamically Reconfigurable Image Processor • Baseado no processador de vizinhança NP9

• Processador matricial

• Matriz bidimensional de células interconectadas (PE)

Page 3: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

Matriz de PEs

X1

X2

X3

X4

X5

X6

X7

X8

X9

Y1

Y2

Y3

Y4

Y5

Y6

Y7

Y8

Y9

Page 4: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

O Processador Elementar (PE)

• Executa duas funções básicas:– soma (ADD)– máximo (MAX)

• A Função ADD representa a classe dos algoritmos lineares

• A função MAX representa a classe dos não lineares

Page 5: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

O Processador Elementar (PE)

• Em Cada PE é executada a função

• Onde: representa a operação selecionada (ADD ou

MAX).– X1 e X2 são pixels de entrada– W1, W2 são dois pesos inteiros configuráveis

),,( 2211 WXWXfS

Page 6: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

O Processador Elementar (PE)

• Um PE pode receber 18 configurações– Algumas equivalentes ou simétricas

• O conjunto de configurações diferentes forma a biblioteca de células

Page 7: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

O Processador Elementar (PE)

Configuração Função add(0,0), max(0,0) Zero

add(0,X2),add(X1,0) X

add(0,-X2),add(-X1,0) -X

add(X1,X2) Xa + Xb

add(X1,-X2), add(-X1,X2) Xa – Xb

max(0,X2), max(X1,0) If positive(X) then X else 0

max(0,-X2), max(-X1,0) If negative(X) then X else 0

Outras possibilidades de max Max(Xa, Xb)

Page 8: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

O Processador Elementar (PE)

fSX1

W1

X2W2

Page 9: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

DRIP - Reconfiguração Estática

Page 10: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

DRIP - Reconfiguração Estática

Page 11: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

CAD de Configuração

Mapeamento LUT

Alocação (Placement

)

Roteamento

(Routing)

Geração de

Bitstream

Otimização Independent

e de tecnologia

Config.Data

Alto Nível/ RTL

Page 12: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

CAD de Configuração

• VRD - Visual interface for Dynamic Reconfiguration– interface gráfica, representação direta dos 81

processadores elementares– Otimização

• grafo orientado acíclico• eliminações e transformações sobre a matriz de Pes• Objetivo: encontrar uma representação equivalente

(execução mais rápida, menor utilização dos recursos do FPGA

– Geração do arquivo VHDL

Page 13: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

CAD de Configuração

Biblioteca de Configurações

VDR

Algoritmo

Otimização

VHDL Configuração

Page 14: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

CAD de Configuração

Page 15: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

CAD - Otimizações

add-1

-1 ?-1

?

add1

1 ?1

?cell 1

cell 2

cell 1

cell 2

?0

0 ??

?

?0

?cell 1

cell 2

cell 1

cell 2

add-1

1 add-1

1cell 1cell 3

add-1

1

cell 2

add1

-1 add1

1cell 1cell 3

add-1

-1

cell 2

Avanço

Retorno

Page 16: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

Estratégias de Reconfiguração

• Reconfigurabilidade da aplicação– define um sistema baseado nas características

comuns: regularidade, concorrência e operandos de pequena granularidade .

• Reconfigurabilidade arquitetural – uma arquitetura inicial, a qual é decomposta em

suas funções básicas que formam uma biblioteca de componentes

Page 17: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

Reconfigurabilidade Arquitetural

Biblioteca

de Funções

Decomposição

Análise

Modelagem

Síntese

Similaridades

Biblioteca de Configurações

VDR

Algoritmo

Otimização

VHDL

Configuração

Page 18: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

Analise de Similaridades

• Blocos Estáticos:– Não se alteram entre configurações sucessivas

• Blocos Dinâmicos:– Modificam-se completamente ou possuem

diversas diferenças entre uma configuração e outra

• Blocos Semi-estáticos:– Possuem poucas diferenças estruturais entre

duas configurações

Page 19: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

Analise de Similaridades

• 5 algoritmos – detector morfológico de contornos,– Filtro de mediana separável– Mediana,– Dilatação– Erosão

• Comparação entre PE em algoritmos diferentes

Page 20: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

Analise de Similaridades

• Similaridade em nível de algoritmo– Coincidências exatas

• Similaridade em nível de célula– Análise a estrutura lógica dos Pes, blocos semi-

estáticos

• Geração de um mapa de transformações • Modelagem dos PEs através da fusão de

funcionalidades

Page 21: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

Modelagem Comportamental

• Explorar a similaridade em nível de algoritmo

• O estudo realizado entre os 5 algoritmos mostra que uma macro célula pode ser formada agrupando-se, no pior caso, três células super especializadas DRIP

 

INPUT (X1,X2,CLOCK,CONTROL)

OUTPUT(Y)

 

CASE CONTROL

Valor1 : --- Exec. Cód. comportamental da célula 1

Valor2 : --- Exec. Cód. comportamental da célula 2

Valor3 : --- Exec. Cód. comportamental da célula 3

END CASE;

 

Page 22: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

Modelagem Comportamental

0 20 40 60 80 100

1

Custos em LCs das Células mxmin

mxmnm1r

m1nripr

mxm1rifn

mxm1r

m1rm1mn

m1rprnr

m1riprmn

m1rinmn

m1rinmn

m1rin

m1nripr

m1nrip

m1mn

m1iprmn

m1ipr

m1ipipr

m1ip

m1inmn

m1inipr

m1inip

m1ifneg

minnifpr

maxifpos

Page 23: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

Modelagem Estrutural

• Explora a similaridade em nível de algoritmo e em nível de célula

• Cada PE pode ser visto como um sistema baseado em dois submódulos:– Quantificador: Aplicação do peso (-1, 0 ou 1)– Qualificador: Executa a função de máximo ou

soma

Page 24: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

Modelagem Estrutural

PIXEL1 W1 PIXEL2 W2

Quantificador

Qualificador

Y

Page 25: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

Modelagem Estrutural

Max

1/0

1PIXEL1

PIXEL2

Page 26: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

Modelagem Estrutural

MaxPIXEL1

PIXEL2

REG

0

CTRL

Page 27: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

Modelagem Estrutural

0 10 20 30 40 50 60

1

Custo em LCs das Células

MC_D

MG_D

MG_C

MG_G

MF_C

MF_F

MB_F

MG_F

MF_D

MB_E

MB_D

ME_F

Page 28: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

0 10 20 30 40 50 60

1

Custo em LCs das Células

MC_D

MG_D

MG_C

MG_G

MF_C

MF_F

MB_F

MG_F

MF_D

MB_E

MB_D

ME_F

0 20 40 60 80 100

1

Custos em LCs das Células mxmin

mxmnm1r

m1nripr

mxm1rifn

mxm1r

m1rm1mn

m1rprnr

m1riprmn

m1rinmn

m1rinmn

m1rin

m1nripr

m1nrip

m1mn

m1iprmn

m1ipr

m1ipipr

m1ip

m1inmn

m1inipr

m1inip

m1ifneg

minnifpr

maxifpos

Page 29: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

Estrutural x Comportamental

• Biblioteca estrutural apresenta um reuso maior de modelos em relação à biblioteca comportamental. – 24 células na biblioteca comportamental– 12 células na biblioteca estrutural

• Similaridade no nível de célula existente no modelo quantificador/qualificador– Exemplo: MAX(1,0), MAX(0,-1) e Max(1,-1)

Page 30: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

Estrutural x Comportamental

1

0

Max0

-1

Max1

-1

Max

1

0

Max0

-1

Max

1/0

0/-1

Max

a)

b)

c)

Page 31: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

DRIP Reconfigurável

Page 32: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

Desempenho - FPGA

Page 33: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

Desempenho - VLSI

• Caso 1: Sem complemento de dois, sem somadores• 1.47 GHz. (0,35 m)

• Caso 2: Sem complemento de dois, com somadores• 588 MHz (0,35 m)

• Caso 3: Completo• 303 MHz (0,35 m)

Page 34: Do DRIP ao DRIP RTR Ivan Saraiva Silva. DRIP - Dynamically Reconfigurable Image Processor Baseado no processador de vizinhança NP9 Processador matricial

Desempenho - VLSI

• Uso do somador carray select