ambientes computacionais distribuídos para engenharia do conhecimento - egc 9001-09 – 2011.3...

30
Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio GPU em Ambientes Paralelos e Distribuídos

Upload: internet

Post on 18-Apr-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

GPU em Ambientes Paralelos e Distribuídos

Page 2: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

• Motivação• Introdução• Embasamento• Trabalho• Conclusão

Agenda

Page 3: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

• Busca pela melhoria da capacidade computacional (performance)

• Como? Através da paralelismo das GPU (paralelismo em geral)

• Porque a maneira antiga não funciona mais? Estagnação do clock dos CPU (lei de Moore).

Motivação

Page 4: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Motivação

Page 5: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

• Motivação• Introdução• Embasamento• Trabalho• Conclusão

Agenda

Page 6: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

GPU é utilizada na computação de alto desempenho, capacidade de paralelizar e alta largura de banda;

GPU possui uma arquitetura SIMD de vários núcleos de processamento e utiliza-os para uma atividade massivamente paralela;

GPU vs aumento do clock dos processadores para melhorar o desempenho; Foco: aumentar o número de cores (núcleos de processamento);

Intel Xeon X7560 possui 8 cores, a GPU GeForce 8800 GTS possui 96 cores.

Introdução

Page 7: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

IntroduçãoDesempenho da GPU no processamento de imagens chamou a atenção de cientistas e pesquisadores.

• Processamento de imagens• Jogos

• Cálculos matemáticos• Banco de dados• Mineração de dados

GPGPUGráfico

• Aplicação com características que torne vantajoso o uso da GPU, como a possibilidade de paralelizar o processamento;

• Desafio está em conseguir desenvolver os aplicativos para a GPU.

Page 8: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Introdução

- 3 bilhões de transistores. - 512 cores, organizados em: - 16 Streaming Multiprocessors (SM). - Cada SM possuindo 32 cores. - 6 partições de memória de 64 bits, totalizando 364 bits de memória. - Suportando 6 GB de GDDR DRAM. - Um Host Interface conexão via PCI-Express com a CPU. - Uma GigaThread que distribui os blocos de threads para o escalonador do SM. - Um L2 Cache compartilhado por todos os SMs.

A arquitetura FERMI

Arquitetura FERMI de uma GPU Tesla NVIDIA.

Page 9: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Introdução

Arquitetura de um Stream Multiprocessor da GPU NVIDIA Tesla.

Uma memória compartilhada de 64 KB/L1 Cache.;

Configurável dependendo da necessidade;

Memória interna de cada SM faz com que diminua o tráfico de dados entre o SM e a memória L2 Cache ou as memórias DRAM;

Menor trafego melhora o desempenho do processamento.  

Arquitetura de um SM

Page 10: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Introdução

16 load/store units utilizadas para carregar e armazenar dados nas memórias cache e DRAM. Com 16 unidades, 16 threads podem ser utilizadas para essa tarefa.

O escalonador do SM agrupa as threads em grupos de 32 threads em paralelo chamadas warps.

Cada SM possui 2 Warp Schedule e 2 Dispatch units, o SM trabalha dois grupos ou warps ao mesmo tempo em paralelo

Como cada warp trabalha de forma independente, é possível atingir assim o desempenho máximo do hardware.  Hierarquia de acesso às memórias da GPU realizado por uma thread .

Acesso à Memória

Page 11: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Introdução

Inicialmente, o pipeline da GPU estágios com função específica e com pouca capacidade de programação.

• Vertex Processing. • Rasterization. • Fragment Processing. • Frame Buffer.

  Realizavam tarefas gráficas.

O pipeline passou por algumas evoluções para ficar com uma maior capacidade de programação.

Vertex Processing e Fragment Processing, mudaram e são susceptíveis a programação.

Evolução

Page 12: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

• Linguagem que estende C: – C CUDA Language

• Garante ao desenvolvedor acesso aos recursos da GPU para GPGPU.

<<blocks, threads>> GoDevice()

Introdução

Page 13: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Introdução

Comparação das arquiteturas da série G80, GT200 e FERMI.

Page 14: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

• Motivação• Introdução• Embasamento• Trabalho• Conclusão

Agenda

Page 15: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Embasamento

http://www.gpucomputing.net/?q=node/213

Page 16: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Embasamento

• Expressões regulares são bem eficazes na detecção de invasão em redes e verificação de vírus

• Overhead de CPU• 48x speedup utilizando GPU¹• 16 Gbit/s throughput

¹http://www.gpucomputing.net/?q=node/1761

Page 17: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Embasamento

• Gregex¹ alcançou um throughput de 126.8 Gbps.

• Speedup of 210× em relação a implementação com CPU

• Speedup of 7.9× sobre o estado da arte em nas implementações com GPU

http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=5976233&tag=1

Page 18: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Embasamento

• Nvidia CEO Jen-Hsun Huang (2009): • “GPU performance will increase

up to 570x in the next six years.”

Page 19: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Embasamento

• Tianhe-1A• NUDT TH MPP, X5670 2.93Ghz

6C, NVIDIA GPU, FT-1000 8C

Page 20: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

• Motivação• Introdução• Embasamento• Trabalho• Conclusão

Agenda

Page 21: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

• Neste trabalho iremos utilizar a GPU e PC Cluster para interpretar o limite de um volume de interesse em cima de fibras cerebrais a partir de imagens 3D.

TrabalhoTELEMEDICINA UTILIZANDO GPU E CLUSTERS

Page 22: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

• Rastreamento de Fibra (Fiber tracking):

- Técnica de determinação de feixes de fibra em um cérebro humano.

- De acordo com o algoritmo de rastreamento de fibra, cumpre seu objetivo quando é analisado todas as informações da imagem.

- Cada uma dessas fibras são independentes umas das outras.

TrabalhoTELEMEDICINA UTILIZANDO GPU E CLUSTERS

Page 23: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

TrabalhoTELEMEDICINA UTILIZANDO GPU E CLUSTERS

Page 24: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

• Aplicação da GPU e PC Cluster: - O aplicativo de rastreamento da fibra GPU foi implementada utilizando a

tecnologia CUDA por meio de API e um compilador C .

- O Aplicativo CUDA de rastreamento de fibra é lançado para cada ponto da imagem; como o número de pontos e muito maior que o número de processadores a GPU raramente torna-se ocioso por insuficiência de dados a

serem processados.

- O PC Cluster será utilizado para o armazenamento das informações coletadas onde se faz necessário uma visualização das imagens em outro momento.

TrabalhoTELEMEDICINA UTILIZANDO GPU E CLUSTERS

Page 25: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

• Motivação• Introdução• Embasamento• Trabalho• Conclusão

Agenda

Page 26: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

• Capacidade de paralelismo massivo.

• Preço• UPenn: Finding a Better Shampoo • Redução 18x no custo

Conclusão

Page 27: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

• Velocidade

Conclusão

Page 28: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

• Limitações por conta da atomicidade da GPU

• CPU é mais rápida em operações com controle de fluxo de informações complexo.

• Complexidade de programação• Atenção Centros de Ensino

Conclusão

Page 29: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=5976233&tag=1http://www.gpucomputing.net/?q=node/1761http://www.scherm.com.br/web/Tesla-briefOvrw-June09_v1_0.pdf http://www.nvidia.com/object/GPU_Computing.htmlhttp://www.gpucomputing.nethttp://www.nvidia.com/content/PDF/fermi_white_papers/NVIDIA_Fermi_Compute_Architecture_Whitepaper.pdf

Referência Bibliográfica

Page 30: Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3 Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio

Obrigado

• Dúvidas?