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
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
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
Ambientes Computacionais Distribuídos para Engenharia do Conhecimento - EGC 9001-09 – 2011.3Bruno Altieri – Leandro Dal Pizzol - Luís Fernando Custódio
Motivação
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
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
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.
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.
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
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
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
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
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.
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
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
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
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
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.”
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
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
• 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
• 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
TrabalhoTELEMEDICINA UTILIZANDO GPU E CLUSTERS
• 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
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
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
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
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
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
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?
Top Related