38
Contextualizac ¸˜ ao Sistemas H´ ıbridos Reconfigur ´ aveis Aplicac ¸˜ oes Desenvolvimento H´ ıbrido Caso: XD1 INPE Minicurso WSCAD-SSC 2009 Computac ¸˜ ao Heterog ˆ enea de Alto Desempenho com FPGAs Andrea Char ˜ ao 1 Vitor Gomes 1,2 Haroldo de Campos Velho 2 1 LSC - Laborat ´ orio de Sistemas de Computac ¸˜ ao UFSM - Universidade Federal de Santa Maria 2 LAC - Laborat ´ orio Associado de Computac ¸˜ ao e Matem ´ atica Aplicada INPE - Instituto Nacional de Pesquisas Espaciais 1 / 38

Minicurso WSCAD 2010

Embed Size (px)

DESCRIPTION

Apresentação feita sobre Computação Heterogênea no WSCAD 2010.

Citation preview

Page 1: Minicurso WSCAD 2010

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

Page 2: Minicurso WSCAD 2010

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

Page 3: Minicurso WSCAD 2010

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

Page 4: Minicurso WSCAD 2010

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

Page 5: Minicurso WSCAD 2010

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

Page 6: Minicurso WSCAD 2010

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

Page 7: Minicurso WSCAD 2010

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

Page 8: Minicurso WSCAD 2010

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

Page 9: Minicurso WSCAD 2010

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

Page 10: Minicurso WSCAD 2010

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

Page 11: Minicurso WSCAD 2010

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

Page 12: Minicurso WSCAD 2010

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

Page 13: Minicurso WSCAD 2010

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

Page 14: Minicurso WSCAD 2010

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

Page 15: Minicurso WSCAD 2010

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

Page 16: Minicurso WSCAD 2010

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

Page 17: Minicurso WSCAD 2010

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

Page 18: Minicurso WSCAD 2010

ContextualizacaoSistemas Hıbridos Reconfiguraveis

AplicacoesDesenvolvimento Hıbrido

Caso: XD1 INPE

Mitrionics: Information RetrievalOAK Ridge National Laboratory

OAK Ridge National Laboratory

18 / 38

Page 19: Minicurso WSCAD 2010

ContextualizacaoSistemas Hıbridos Reconfiguraveis

AplicacoesDesenvolvimento Hıbrido

Caso: XD1 INPE

Mitrionics: Information RetrievalOAK Ridge National Laboratory

OAK Ridge National LaboratoryOnde estao executando?

19 / 38

Page 20: Minicurso WSCAD 2010

ContextualizacaoSistemas Hıbridos Reconfiguraveis

AplicacoesDesenvolvimento Hıbrido

Caso: XD1 INPE

Mitrionics: Information RetrievalOAK Ridge National Laboratory

OAK Ridge National LaboratoryResultados

20 / 38

Page 21: Minicurso WSCAD 2010

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

Page 22: Minicurso WSCAD 2010

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

Page 23: Minicurso WSCAD 2010

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

Page 24: Minicurso WSCAD 2010

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

Page 25: Minicurso WSCAD 2010

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

Page 26: Minicurso WSCAD 2010

ContextualizacaoSistemas Hıbridos Reconfiguraveis

AplicacoesDesenvolvimento Hıbrido

Caso: XD1 INPE

EquipamentoAplicacoesDesenvolvimento

EquipamentoCaso: XD1 INPE

Adquido pelo INPE em 2005

26 / 38

Page 27: Minicurso WSCAD 2010

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

Page 28: Minicurso WSCAD 2010

ContextualizacaoSistemas Hıbridos Reconfiguraveis

AplicacoesDesenvolvimento Hıbrido

Caso: XD1 INPE

EquipamentoAplicacoesDesenvolvimento

DesenvolvimentoCaso: XD1 INPE

Figura: Template para o FPGA

28 / 38

Page 29: Minicurso WSCAD 2010

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

Page 30: Minicurso WSCAD 2010

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

Page 31: Minicurso WSCAD 2010

ContextualizacaoSistemas Hıbridos Reconfiguraveis

AplicacoesDesenvolvimento Hıbrido

Caso: XD1 INPE

EquipamentoAplicacoesDesenvolvimento

DesenvolvimentoCaso: XD1 INPE

31 / 38

Page 32: Minicurso WSCAD 2010

ContextualizacaoSistemas Hıbridos Reconfiguraveis

AplicacoesDesenvolvimento Hıbrido

Caso: XD1 INPE

EquipamentoAplicacoesDesenvolvimento

DesenvolvimentoCaso: XD1 INPE

32 / 38

Page 33: Minicurso WSCAD 2010

ContextualizacaoSistemas Hıbridos Reconfiguraveis

AplicacoesDesenvolvimento Hıbrido

Caso: XD1 INPE

EquipamentoAplicacoesDesenvolvimento

DesenvolvimentoCaso: XD1 INPE

33 / 38

Page 34: Minicurso WSCAD 2010

ContextualizacaoSistemas Hıbridos Reconfiguraveis

AplicacoesDesenvolvimento Hıbrido

Caso: XD1 INPE

EquipamentoAplicacoesDesenvolvimento

DesenvolvimentoCaso: XD1 INPE

ufphdr

Convert

34 / 38

Page 35: Minicurso WSCAD 2010

ContextualizacaoSistemas Hıbridos Reconfiguraveis

AplicacoesDesenvolvimento Hıbrido

Caso: XD1 INPE

EquipamentoAplicacoesDesenvolvimento

DesenvolvimentoCaso: XD1 INPE

Submissao

Na fila, aguardando

Executando

35 / 38

Page 36: Minicurso WSCAD 2010

ContextualizacaoSistemas Hıbridos Reconfiguraveis

AplicacoesDesenvolvimento Hıbrido

Caso: XD1 INPE

EquipamentoAplicacoesDesenvolvimento

DesenvolvimentoCaso: XD1 INPE

Saıda

36 / 38

Page 37: Minicurso WSCAD 2010

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

Page 38: Minicurso WSCAD 2010

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