13.04.2013 Views

Técnicas de Otimização de Código para Placas de ... - UFMG

Técnicas de Otimização de Código para Placas de ... - UFMG

Técnicas de Otimização de Código para Placas de ... - UFMG

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Controle<br />

Cache<br />

ALU ALU<br />

ALU ALU<br />

DRAM DRAM<br />

CPU GPU<br />

Figura 1.2. Uma com<strong>para</strong>ção entre a GPU e<br />

a CPU, conforme figura obtida do manual <strong>de</strong><br />

programação CUDA [4].<br />

da Nvidia suportam até 768 threads ativas por multiprocessador;<br />

algumas GPUs elevando este número a 1.024. Em dispositivos<br />

que possuem 30 multiprocessadores, tais como a GeForce GTX<br />

280, isto faz com que 30,000 threads possam estar ativas simultaneamente".<br />

Este hardware po<strong>de</strong>rosíssimo tem permitido que<br />

algumas aplicações pu<strong>de</strong>ssem executar até 100 vezes mais rapidamente<br />

que suas rivais restritas à CPU [22]. A figura 1.2 mostra<br />

uma típica representação da GPU, com<strong>para</strong>da com a CPU.<br />

A GPU se<strong>para</strong> uma porção muito gran<strong>de</strong> <strong>de</strong> sua área útil <strong>para</strong><br />

tarefas <strong>de</strong> processamento, ao passo que a CPU usa bastante<br />

<strong>de</strong>sta área <strong>para</strong> implementar a sua memória <strong>de</strong> cache.<br />

A GPU necessita <strong>de</strong> todo este <strong>para</strong>lelismo porque aplicações<br />

gráficas ten<strong>de</strong>m a ser embaraçosamente <strong>para</strong>lelas. Isto<br />

quer dizer que tais aplicações são formadas por tarefas em geral<br />

in<strong>de</strong>pen<strong>de</strong>ntes umas das outras. Por exemplo, po<strong>de</strong>mos escurecer<br />

ou clarear os pixels em uma imagem atendo-nos a cada<br />

pixel em se<strong>para</strong>do. Dada a natureza minimalista <strong>de</strong>stas tarefas,<br />

a GPU po<strong>de</strong> se dar ao luxo <strong>de</strong> possuir núcleos <strong>de</strong> processamento<br />

simples, porém estes <strong>de</strong>vem existir em gran<strong>de</strong> número.<br />

Alguns autores, principalmente aqueles mais ligados à NVI-<br />

DIA, costumam usar a expressão STMD (Single Thread Multiple<br />

Data) <strong>para</strong> caracterizar as GPUs. Este contudo, é um termo relativamente<br />

novo e ainda pouco utilizado. Muitos outros autores<br />

6

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!