Utilização de GPUs para Sistemas de Paralelismo Massivo CPU – Central Processor Unit Processamento sequencial Instrução por instrução A cada nova geração de processadores, tem-se um notório ganho de desempenho: Desenvolvedores repassavam o progresso para suas aplicações: Aplicações mais robustas e complexas Um pouco de história... [1943:2003] Clock das CPUs cresce bastante de uma geração para outra 2003: Clock das CPUs tende a crescer cada vez menos. Motivos: dissipação de calor e consumo de energia elevados. Solução: aumenta-se o número de núcleos de processamento. [2003:-1] Corrida por pontos flutuantes: Desempenho de GPUs cresce exponencialmente Computação de alto desempenho adere ao novo tipo de processamento. Tendência paralela Instruções não atuam mais só de forma sequencial CPUs: Controles sofisticados para aplicar paralelismo em threads únicas. Gerenciam instruções sequenciais de forma paralela mantendo a aparência sequencial. GPUs: Abordagem SIMD (Single Instruction, Multiple Data) Projetadas para processamento gráfico. Especializadas em cálculos de vetores e matrizes. Organização interna de uma GPU Organização interna de uma GPU Organização interna de uma GPU Hierarquia de Memória • Memória compartilhada e L1 Cache Podem ser configuradas: •16 kB de L1 e 48KB de SM •16 kB de SM e 48KB de L1 •Read-only cache: •Evita acesso à L1 quando não for Para escrita GPUs em Sistemas de Paralelismo massivo (MPP) Por volta de 2000 os cientistas começaram a utilizar GPUs para acelerarem aplicações científicas (cálculos matemáticos, físicos, biológicos...) Advento do GPGPU (General Purpose Computation on GPU) Forçou os desenvolvedores a repensar em seus algoritmos. GPUs desenvolvidas para o mercado de HPC Organização de um Cluster CPU-GPU Cluster AC at NCSA HP xw9400 workstation 2216 AMD opteron 2.4GHz, Dual core 8 GB DDR2 Infiniband QDR Adapter Tesla S1070 1U GPU Computing Server 1.3 GHz Tesla T10 processors 4x4 GB GDDR3 SD RAM Cluster com 32 nós