ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
Minicurso WSCAD-SSC 2009
Computacao Heterogenea de Alto Desempenhocom FPGAs
Andrea Charao1 Vitor Gomes1,2 Haroldo de Campos Velho2
1LSC - Laboratorio de Sistemas de ComputacaoUFSM - Universidade Federal de Santa Maria
2LAC - Laboratorio Associado de Computacao e Matematica AplicadaINPE - Instituto Nacional de Pesquisas Espaciais
1 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
1 ContextualizacaoComputacao Heterogenea/HıbridaFPGA vs. GPU?
2 Sistemas Hıbridos Reconfiguraveis
3 Aplicacoes
4 Desenvolvimento HıbridoO que executar no FPGA?AbordagensFluxo de DesenvolvimentoDesafios
5 Caso: XD1 INPEEquipamentoAplicacoesDesenvolvimento
2 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
Computacao Heterogenea/HıbridaFPGA vs. GPU?
Computacao Heterogenea/HıbridaContextualizacao
Utiliza multiplos tipos deelementos de processamento(CPU, GPU, FPGA, etc)
Cada elemento processa atarefa mais adequada
Objetivo: aumento dedesempenho Figura: Computacao Hıbrida
3 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
Computacao Heterogenea/HıbridaFPGA vs. GPU?
Computacao Heterogenea/HıbridaContextualizacao
Utiliza multiplos tipos deelementos de processamento(CPU, GPU, FPGA, etc)
Cada elemento processa atarefa mais adequada
Objetivo: aumento dedesempenho
Figura: Computacao HıbridaReconfiguravel (FPGA)
4 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
Computacao Heterogenea/HıbridaFPGA vs. GPU?
Um pouco de historiaComputacao Hıbrida Reconfiguravel
Imaginado por Gerald Estrin em 62
Arquitetura Fixed-Plus-Variable
FPGAs disponıveis em 85 (Xilinx)
Primeiro Computador HıbridoReconfiguravel (91): AlgotronixCHS2X4
Tecnologia comprada pela Xilinx em93
Figura: Algotronix CHS2X45 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
Computacao Heterogenea/HıbridaFPGA vs. GPU?
FPGA vs. GPU?Google Trends
Figura: Google Trends
Figura: Google Trends:Regions
6 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
Computacao Heterogenea/HıbridaFPGA vs. GPU?
FPGA vs. GPU?SBAC-PAD Trends
SBAC-PAD’09
FPGA: 1
GPU: 5
WSCAD-SSC’09
FPGA: 6
GPU: 4
7 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
Computacao Heterogenea/HıbridaFPGA vs. GPU?
FPGA vs. GPU?Caracterısticas
FPGA
Arquitetura customizada paraa aplicacao
Baixa frequencia
Baixo consumo de energia
Desenvolvimento ”difıcil”
Comunicacao e crıtica
GPU
Aplicacao precisa se adequara arquitetura
Alta frequencia
Alto consumo de energia
Desenvolvimento ”facil”
Comunicacao e crıtica
8 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
Cray XD1Blade Cray XR1Blade SGI RASC RC100Arquitetura SRC IMPLICIT + EXPLICITConvey HC-1
Sistemas Hıbridos Reconfiguraveis
1 ContextualizacaoComputacao Heterogenea/HıbridaFPGA vs. GPU?
2 Sistemas Hıbridos Reconfiguraveis
3 Aplicacoes
4 Desenvolvimento HıbridoO que executar no FPGA?AbordagensFluxo de DesenvolvimentoDesafios
5 Caso: XD1 INPEEquipamentoAplicacoesDesenvolvimento
9 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
Cray XD1Blade Cray XR1Blade SGI RASC RC100Arquitetura SRC IMPLICIT + EXPLICITConvey HC-1
Cray XD1Sistemas Hıbridos Reconfiguraveis
Lancado em 2004
6x blades2 AMD Opteron 64bits1 FPGA Xilinx Virtex II Pro
Figura: Cray XD1
10 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
Cray XD1Blade Cray XR1Blade SGI RASC RC100Arquitetura SRC IMPLICIT + EXPLICITConvey HC-1
Cray XD1Sistemas Hıbridos Reconfiguraveis
Lancado em 2004
6x blades2 AMD Opteron 64bits1 FPGA Xilinx Virtex II Pro
Figura: Cray XD1
11 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
Cray XD1Blade Cray XR1Blade SGI RASC RC100Arquitetura SRC IMPLICIT + EXPLICITConvey HC-1
Blade Cray XR1Sistemas Hıbridos Reconfiguraveis
Solucao generica da Cray
1 AMD Opteron
2 FPGAs Xilinx Virtex 4
Compatıvel com XT3, XT4 eXT5
Figura: Blade Cray XR1
12 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
Cray XD1Blade Cray XR1Blade SGI RASC RC100Arquitetura SRC IMPLICIT + EXPLICITConvey HC-1
Blade SGI RASC RC100Sistemas Hıbridos Reconfiguraveis
Solucao generica da SGI
2 FPGAs Xilinx Virtex 4
Conectado diretamente aobarramento
Compatıvel com SGI Altix4700 e Altix 450
Figura: SGI RASC RC100
13 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
Cray XD1Blade Cray XR1Blade SGI RASC RC100Arquitetura SRC IMPLICIT + EXPLICITConvey HC-1
Arquitetura SRC IMPLICIT + EXPLICITSistemas Hıbridos Reconfiguraveis
Arquitetura IMPLICIT +EXPLICIT
SRC Carte ProgrammingEnvironment
Figura: Arquitetura SRC IMPLICIT +EXPLICIT
14 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
Cray XD1Blade Cray XR1Blade SGI RASC RC100Arquitetura SRC IMPLICIT + EXPLICITConvey HC-1
Convey HC-1Sistemas Hıbridos Reconfiguraveis
Arquitetura hıbrida recente(SC’09)
Green computing
Convey compiler
Figura: Convey HC-1
15 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
Mitrionics: Information RetrievalOAK Ridge National Laboratory
Aplicacoes
1 ContextualizacaoComputacao Heterogenea/HıbridaFPGA vs. GPU?
2 Sistemas Hıbridos Reconfiguraveis
3 Aplicacoes
4 Desenvolvimento HıbridoO que executar no FPGA?AbordagensFluxo de DesenvolvimentoDesafios
5 Caso: XD1 INPEEquipamentoAplicacoesDesenvolvimento
16 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
Mitrionics: Information RetrievalOAK Ridge National Laboratory
Mitrionics: Information Retrieval
Information Retrieval
”University of Glasgow Researchers Attain 20x Acceleration and 90%Power Savings for Information Retrieval Application.”
W. Vanderbauwhede, L. Azzopardi, and M. Moadeli.FPGA-Acclerated Information Retrieval: High-EfficiencyDocument Filtering . In: FPL09 Prague - 19th InternationalConference on Field Programmable Logic and Applications, Sep.2009
Filtragem de grandes quantidades de documentos
SGI RASC RC100
17 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
Mitrionics: Information RetrievalOAK Ridge National Laboratory
OAK Ridge National Laboratory
18 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
Mitrionics: Information RetrievalOAK Ridge National Laboratory
OAK Ridge National LaboratoryOnde estao executando?
19 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
Mitrionics: Information RetrievalOAK Ridge National Laboratory
OAK Ridge National LaboratoryResultados
20 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
O que executar no FPGA?AbordagensFluxo de DesenvolvimentoDesafios
Desenvolvimento Hıbrido
1 ContextualizacaoComputacao Heterogenea/HıbridaFPGA vs. GPU?
2 Sistemas Hıbridos Reconfiguraveis
3 Aplicacoes
4 Desenvolvimento HıbridoO que executar no FPGA?AbordagensFluxo de DesenvolvimentoDesafios
5 Caso: XD1 INPEEquipamentoAplicacoesDesenvolvimento
21 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
O que executar no FPGA?AbordagensFluxo de DesenvolvimentoDesafios
O que executar no FPGA?Desenvolvimento Hıbrido
Nucleos computacionalmente intensivos
Custo de comunicacao vs Custo processamento
22 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
O que executar no FPGA?AbordagensFluxo de DesenvolvimentoDesafios
AbordagensDesenvolvimento Hıbrido
Figura: CPU ou FPGA Figura: CPU e FPGA
23 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
O que executar no FPGA?AbordagensFluxo de DesenvolvimentoDesafios
Fluxo de DesenvolvimentoDesenvolvimento Hıbrido
24 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
O que executar no FPGA?AbordagensFluxo de DesenvolvimentoDesafios
DesafiosDesenvolvimento Hıbrido
Comunicacao CPU - FPGA (Custo e abordagens)
Ponto Flutuante (area disponıvel no FPGA, N ciclos)
Utilizacao eficiente da hierarquia de memoria
Duplo paradigma
Particionamento de carga entre CPU e FPGA
25 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
EquipamentoAplicacoesDesenvolvimento
EquipamentoCaso: XD1 INPE
Adquido pelo INPE em 2005
26 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
EquipamentoAplicacoesDesenvolvimento
AplicacoesCaso: XD1 INPE
Solucao de Equacoes diferenciais parciaisTransformada Rapida de Fourier
Criptografia: SHA-2
27 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
EquipamentoAplicacoesDesenvolvimento
DesenvolvimentoCaso: XD1 INPE
Figura: Template para o FPGA
28 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
EquipamentoAplicacoesDesenvolvimento
DesenvolvimentoCaso: XD1 INPE
Biblioteca einlib
Abstrai o FPGA como um arquivo
Funcoes
Abertura: fd = fpga open (/dev/ufp0, ...);
Carga: fpga load (fd, top.bin.ufp , ...);
Escrita: fpga wrt appif val (fd, data, addr, ...);
Leitura: fpga rd appif val (fd, &data, addr, ...);
29 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
EquipamentoAplicacoesDesenvolvimento
DesenvolvimentoCaso: XD1 INPE
Funcoes
fpga wrt appif val(fd, 0x0F, 0x01);
fpga rd appif val(fd, &data, 0x01);
30 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
EquipamentoAplicacoesDesenvolvimento
DesenvolvimentoCaso: XD1 INPE
31 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
EquipamentoAplicacoesDesenvolvimento
DesenvolvimentoCaso: XD1 INPE
32 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
EquipamentoAplicacoesDesenvolvimento
DesenvolvimentoCaso: XD1 INPE
33 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
EquipamentoAplicacoesDesenvolvimento
DesenvolvimentoCaso: XD1 INPE
ufphdr
Convert
34 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
EquipamentoAplicacoesDesenvolvimento
DesenvolvimentoCaso: XD1 INPE
Submissao
Na fila, aguardando
Executando
35 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
EquipamentoAplicacoesDesenvolvimento
DesenvolvimentoCaso: XD1 INPE
Saıda
36 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
EquipamentoAplicacoesDesenvolvimento
Consideracoes finais
Panorama da computacao hıbrida usando FPGA
Futuro dos FPGAs na computacao de alto desempenho?fabricantesdesenvolvedores e pesquisadoresusuarios
Desenvolvimento para FPGAs: pros e contras
37 / 38
ContextualizacaoSistemas Hıbridos Reconfiguraveis
AplicacoesDesenvolvimento Hıbrido
Caso: XD1 INPE
Minicurso WSCAD-SSC 2009
Computacao Heterogenea de Alto Desempenhocom FPGAs
Andrea Charao Vitor Gomes Haroldo de Campos [email protected], [email protected], [email protected]
38 / 38
Top Related