09.05.2015 Views

universidade feevale douglas neves spindler algoritmos para ...

universidade feevale douglas neves spindler algoritmos para ...

universidade feevale douglas neves spindler algoritmos para ...

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.

40<br />

3 PROGRAMAÇÃO COM GPUS<br />

A utilização de GPUs como ferramentas de computação <strong>para</strong> aplicações outras que<br />

não gráficas é motivada especialmente pelo grande número de unidades lógicas e aritméticas<br />

(ULA) presentes em tais dispositivos.<br />

Kirk e Hwu (2010, p. 5) afirmam que “a filosofia de projeto de GPUs é modelada<br />

pelo rápido crescimento da indústria de video games, a qual exerce uma enorme pressão <strong>para</strong><br />

que seja possível desempenhar um número massivo de operações de ponto-flutuante por<br />

frames de vídeo nos jogos modernos”. Os mesmos autores (2010) ainda comentam que, deste<br />

modo, os fabricantes são forçados a encontrar soluções que sejam capazes de maximizar o<br />

número de tais operações. Até o momento, a principal solução <strong>para</strong> esta demanda consiste em<br />

otimizar a execução <strong>para</strong> que se tenha um throughput de grandes números de threads. Como<br />

resultado, uma área maior dos chips das GPUs é dedicada a cálculos de ponto-flutuante. A<br />

Figura 12 ilustra esse conceito, mostrando que as GPUs possuem, deste modo, áreas de<br />

controle e memória reduzidas, porém com um número muito maior de ULAs:<br />

Figura 12 – Com<strong>para</strong>tivo entre os projetos de uma CPU e de uma GPU.<br />

Fonte: Kirk e Hwu (2010, p. 4).<br />

Assim, à medida que o hardware das GPUs evolui e estas possuem cada vez mais<br />

processadores unificados, tais dispositivos cada vez mais adquirem características de<br />

computadores <strong>para</strong>lelos de alto desempenho.<br />

Este fato fez com que pesquisadores começassem a explorar o potencial das GPUs<br />

<strong>para</strong> resolver problemas científicos e de engenharia de alta demanda computacional. Contudo,<br />

como os chips gráficos eram projetados apenas <strong>para</strong> terem compatibilidade com as interfaces<br />

de programação de aplicações (application programming interface – API) gráficas, era

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

Saved successfully!

Ooh no, something went wrong!