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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

44<br />

CAL interage com os stream processors – nome dado aos processadores do<br />

dispositivo que executam os kernels – como estes sendo uma matriz de processadores SIMD<br />

(Single Instruction, Multiple Data), cada um operando independente e <strong>para</strong>lelamente sobre os<br />

fluxos de dados.<br />

3.3 INTEL LARRABEE<br />

Larrabee é o codinome da arquitetura many-core apresentada pela empresa Intel,<br />

baseada em uma versão estendida do conjunto de instruções x86, <strong>para</strong> computação gráfica e<br />

de alto desempenho. Glaskowsky (2008) define a arquitetura como sendo basicamente um<br />

modelo que utiliza múltiplos núcleos x86, como os de uma CPU, <strong>para</strong> implementar um<br />

processador gráfico.<br />

A principal motivação por trás deste conceito é prover uma solução mais flexível que<br />

as GPUs existentes. Para Seiler et al. (2008), a programabilidade de GPUs <strong>para</strong> computações<br />

de propósito geral é restrita devido a limitações no modelo de memória e pelos blocos de<br />

funções fixas que controlam as threads executando <strong>para</strong>lelamente.<br />

Deste modo, esta flexibilidade, conforme Seiler et al. (2008), é alcançada na<br />

arquitetura Larrabee por meio de suporte a sub-rotinas e page faults (faltas de página), além<br />

do fato de que algumas operações que tradicionalmente são realizadas pelas GPUs são<br />

executadas inteiramente em software com Larrabee, como rasterização de imagens e postshader<br />

blending. Glaskowsky (2008), entretanto, não vê este fato como sendo um ponto a<br />

favor da arquitetura, afirmando que uma solução baseada em software certamente consumirá<br />

mais recursos computacionais.<br />

Seiler et al. (2008) ainda definem a arquitetura como sendo derivada dos<br />

processadores Pentium, com seus processadores executando em ordem. Os núcleos de<br />

processamento foram aumentados com unidades de processamento vetorial. Cada núcleo<br />

possui apenas duas unidades de execução: uma <strong>para</strong> instruções escalares e outra <strong>para</strong><br />

vetoriais. Em com<strong>para</strong>ção com CPUs quad-core, com mais de seis unidades de execução, esta<br />

é uma redução significativa de complexidade, o que torna a arquitetura adequada <strong>para</strong><br />

processamento linear e com código previsível (GLASKOWSKY, 2008). Além disso, cada<br />

núcleo acessa subconjuntos próprios de 256kB de cache de nível L2 coerente. A cache L1

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

Saved successfully!

Ooh no, something went wrong!