METAL: Uma Plataforma Manycore de Propósito Geral Adaptada ao Modelo de Programação OpenCL
Arquiteturas Heterogêneas. CPU. GPU. GPGPU. Manycore. OpenCL. Rede em Chip. SIMD
O termo GPGPU (General Purpose Graphics Processing Unit) é utilizado para denominar o uso de GPUs (Graphics Processing Unit), em conjunto com CPUs (Central Processor Unit), para computação de propósito geral. Embora esses sistemas sejam capazes de executar aplicações de propósito geral e SIMD (Single Instruction Multiple Data), CPUs e GPUs são projetadas separadamente, portanto, apresentam características distintas que dificultam a maximização do potencial dessas arquiteturas quando utilizadas em conjunto. Este trabalho apresenta METAL (ManycorE plaTform Adapted to opencL), uma plataforma manycore baseada em rede em chip, cuja arquitetura foi concebida com o propósito de executar, nativamente, tanto aplicações SIMD quanto de propósito geral. A programação SIMD é realizada utilizando a linguagem OpenCL, cuja execução é facilitada pelo uso de um escalonador de work-items e de um modelo de memória compatível. Os núcleos de processamento utilizados na plataforma são processadores de propósito geral MIPS que, com o suporte de recursos em hardware, permitem o uso de programação paralela utilizando a técnica de exclusão mútua. Algumas aplicações foram desenvolvidas para validar e avaliar o desempenho, bem como a programabilidade da arquitetura. Os algoritmos: Dijkstra; multiplicação de matrizes; problema das N rainhas com solução por algoritmos genético paralelo; jantar dos filósofos e detecção de borda aplicando o filtro laplaciano foram desenvolvidos e executados em um simulador implementado em SystemC. Os experimentos mostram o desempenho da plataforma ao executar os algoritmos e impacto que a comunicação utilizando a rede em chip exerce nas aplicações.