Академический Документы
Профессиональный Документы
Культура Документы
Resumo
tamar no qual se inviabilizou o crescimento do
clock dos processadores e abriu frente à uma nova
forma de se realizar a computação: através de
Este artigo apresenta as técnicas de utiliza- paralelismo computacional.
ção de GPUs (Graphic Processor Unit) em Siste- A computação paralela se baseia na execução
mas de Paralelismo Massivo. Discute-se ao longo de instruções de forma paralela. Sendo assim,
do texto a arquitetura dos processadores grá- vários núcleos de processamento são necessários.
cos, bem como suas características e funcionali- Com isso, teve-se um grande impacto no para-
dades. Apresenta-se também um breve histórico digma de desenvolvimento de programas de ma-
da técnica onde se utilizam hibridamente CPUs e neira sequencial, forçando os desenvolvedores a
GPUs para comporem clusters de computação de pensar em aplicações não como um grupo de ins-
alto desempenho. Como exemplo de aplicação, truções que operam sequencialmente, mas como
tem-se um breve estudo do cluster AC, criado no um grupo de operações que cooperam entre si
National Center for Supercomputing Applicati- para gerar um resultado único [1].
ons (NCSA).
Com isso, hoje temos CPUs multiprocessa-
das, como o exemplo do processador Intel i7,
1
dores voltadas para aplicações paralelas, como é forma paralela, mas mantendo sua aparência se-
o caso da NVIDIA Geforce GTX 580, contendo quencial. Outro ponto importante é a questão
512 núcleos de processamento e cada um deles das grandiozas memórias caches, desenvolvidas
demasiadamente multithread, in-order e single- para lhe darem com aplicações grandes e com-
instruction. Nessa arquitetura, alguns processa- plexas, causando uma certa latência do desem-
dores compartilham entre si o controle e uma ca- penho. Já as GPUs se beneciam de memórias
che de instruções. com largura de banda até 10 vezes maiores que os
Essa mudança radical é referida como revolu- atuais CPUs. Fora isso, a forte demanda pela in-
ção da concorrência, e trouxe mudanças signi- dústria dos jogos têm alavancado o crescimento
cativas na indústria de processadores. Desde dos processadores grácos, os quais necessitam
2003 observa-se uma corrida de desempenho de paralelismo intenso para renderizações de telas
pontos utuantes [1]. Como resultado, verica- [1].
mos um crescimento exponencial de instruções
de pontos utuantes por segundo (FLOPS, do
inglês oating-point operations per second) para
Como alternativa aos enormes clusters con-
as GPUs, enquanto o crescimento no desempe-
tendo centenas de processadores, as GPUs são
nho das CPUs diminui a cada ano. Como pode-
utilizadas a m de se entregarem aparelhos com-
mos vericar na gura 1, em meados de 2008
pactos e poderosos, permitindo maior dissemi-
a diferença de desempenho para esse tipo de
nação do poder computacional. Hoje, tem-se a
cálculo (oating-points) eram de 10 vezes, 1000
utilização de GPUs nas mais diversas áreas da
GFLOPS para GPUs e 100 GFLOPS para CPUs.
ciência, tais como: cálculos em estruturas mole-
culares farmacêuticos, em estruturas biológicas,
genôma humano, turbulência em uidos, e diver-
sas outras áreas em que são necessários reconhe-
cimentos de padrões de imagens, como no caso
da ressonância eletromagnética [3].
Figura 1: Desempenho CPU vs GPU cessors). Sendo assim, busca-se entender como
é a arquitetura de uma GPU, e como é possível
A defasagem mostrada no gráco da gura utiliza-la para realizações de cálculos massivos.
acima (gura 1.1) decorre das distintas losoas Ainda neste contexto, ter-se-á o estudo das tec-
empregadas em cada tipo de processador: no pri- nologias desenvolvidas para a facilitação e me-
meiro caso, as CPUs, possuem controles sostica- lhor aproveitamento da arquitetura Tesla, atual
dos para aplicar paralelismo em threads únicas, arquitetura das GPUs da NVIDIA, com a lingua-
ou até mesmo gerenciar instruções sequenciais de gem de programação CUDA.
2
2 Organização interna da GPU
microprocessador [5]. Suas unidades de proces- Cada processador de streaming separa as thre-
samento grácos são compostas pelos chamados ads em grupos de 32 threads paralelas (chamados
processadores de streaming (SMXs), formados, Warps). Cada uma das quatro unidades de Warp
por sua vez por núcleos de processamento de Scheduler, por sua vez, seleciona um warp para
precisão única, totalmente pipelined e compos- ser executado, e duas de suas instruções indepen-
tos por unidades lógicas e aritméticas de pontos dentes, as quais serão enviadas de forma unitária
utuantes e inteiros [5]. Na gura 2.1 abaixo, para cada um dos dois Dispatches [5]. Assim,
verica-se a disposição dessas unidades no chip oito instruções são executadas paralelamente em
da GPU: um único ciclo no SMX. A gura 2.3 mostra o
funcionamento de uma unidade de Warp Sche-
duler em função do tempo:
2.1 Processadores de Streaming
Após as instruções serem carregadas pelo des-
Cada SMX (gura 2.2) é composto por 192 nú- pachador, elas são transmitidas para as Dispatch
cleos CUDA, uma cache de instruções, quatro Ports dos núcleos CUDA. Cada núcleo desses
Warp Scheduler (agendador de Warp), 8 Dispat- possui um coletor de operação, o qual irá cole-
ches (despachadores), uma cache de memória ní- tar a operação da instrução a ser executada. O
vel 1 de 64KB e uma cache de dados somente núcleo possui ainda unidades de lógica aritméti-
leitura de 48KB e 16 unidades de ltros de tex- cas para inteiros e pontos utuantes e, por serem
3
Figura 5: Organizaçao de um CUDA Core
4
de instruções são muito importantes para a com- pensa seu tamanho e acarreta em uma eciência
putação paralela e largamente utilizada para al- desejável no sistema.
goritmos de classicação paralela e construções As caches de dados read-only possuem 48KB
de estrutura de dados em paralelo sem travar a e o tempo de vida de seus dados são dados pelo
serialização da execução da thread. Elas podem tempo de execução da função em execução. Este
oferecer o padrão leitura-modicação-escrita sem tipo de cache é benéco ao desempenho pois além
interrupção de outra thread. Além das tradi- de manter o caminho da cache L1 livre, possui
cionais instruções atômicas de adição, compare- uma largura de banda maior.
and-swap e exchange, a arquitetura GK110 ofe-
rece também Min, Max, And, Or e Xor, todas de
forma atômica. 3 GPUs em Sistemas de Parale-
lismo Massivo (MPP)
2.3 Hierarquia de memória
3.1 Comparativo: CPU e GPU
A gura 2.5 mostra a hierarquia de memória da
arquitetura em estudo. Cada SMX possui uma Os chips grácos, os quais no seu início eram fa-
memória on-chip que pode ser congurada (via bricados com o intuito único de processamento
software) em uma cache L1 de 16KB e uma me- gráco, vêm se tornando cada vez mais indis-
cache L1 de 48KB e uma memória compartilhada volta do ano 2000, cientistas de computação e
5
tetura nos supercomputadores.
A gura 3.1 mostra um comparativo de uma
GPU (GT240/CUDA) com processadores da In-
tel (i5) [10]. O comparativo foi baseado na quan-
tidade de operações por segundo de números de
pontos utuantes (FLOPs) para determinados
tamanhos de matrizes aplicando-se FFT (fast
fourier transform).
Figura 9: Gráco comparativo de desempenho e
largura de banda entre GPUs e CPUs
mumente nomeada como revolução da concorrên- tro GPUs (podendo conter mais), as quais são
cia, devido ao grande crescimento e importância interligadas ao Host através de uma conexão via
ao qual está se agregando aos processadores de PCI Express. Em particular, GPUs de alta tec-
6
3.3 Breve estudo do Cluster AC
Embora todos esses pontos sejam necessários Ao todo, são 128 núcleos de CPU, 128 GPUs
para um bom e equilibrado projeto de um clus- e 32 aceleradores de unidade (S1070). Cada nó
ter de GPUs, diculdades como disponibilidade tem capacidade de um desempenho de pico men-
de sistema, energia, requerimentos mecânicos e o surado em 349.4 GFLOPS, dados em precisão
preço podem tornar a tarefa de combinar e ga- dupla (double-precision).
rantir todos os requisitos de um bom sistema re-
Entretanto, nos experimentos de [6], um nó foi
lativamente difícil.
capaz de um desempenho mensurado em 117.8
A utilização da CPU traz uma boa combinação GFlops (33.8% do pico esperado). É interessante
para o sistema, visto que um código contém par- notar que essa eciência se estabiliza em apro-
tes que devem ser executadas de forma sequênci- ximadamente 30% para maiores quantidades de
ais e partes que devem ser executadas de formas nós. Com 16 nós, contudo, o cluster AC é capaz
paralelas [7]. de chegar aos 1500 GFLOPS.
7
de até 20 vezes [7].
8
ponencial por um bom tempo. [12] (2012) GraphStrem, In. [Online]. Disponível
em http://www.graphstream.com
[1] KIRK, David B; HWU, Wen-mei W. Pro- [14] (2012) Inniband Trade Associa-
[2] LINTZMAYER, Carla Négri; BOGUE, Edu- [15] J. Coleman, P. Taylor, Hardware Level IO
ardo Theodoro; SAMBINELLI, Maycon. Me- Benchmarking of PCI Express, Intel White
[3] CULLER, David. SINGH, Jaswinder Pal. Pa- [16] (2012) Khronos WebSite. [Online]. Disponí-
mann, 2007.