Abstract:
RESUMO:
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 algoritmo 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. ABSTRACT:
The GPGPU term (General Purpose Graphics Processing Unit) describes the use of GPUs
(Graphics Processing Unit), in conjunction with CPU (Central Processor Unit) for general
purpose computing. While these systems are able to run general purpose and SIMD (Single
Instruction Multiple Data) applications, CPUs and GPUs are designed separately, thus
have different characteristics that make it difficult to maximize the potential of these
architectures when used together.
This Dissertation work presents METAL (ManycorE plaTform Adapted to opencL) a
manycore platform network on chip based, whose architecture was designed in order to run
natively both SIMD applications as general purpose. The SIMD programming is performed
using OpenCL language, whose execution is facilitated by the use of a work-item’s scheduler
and a adapted memory model. The processing core used in the platform is the general
purpose processors MIPS that, with the support of hardware resources, enable the use of
parallel programming using mutual exclusion technique.
Some applications were developed to validate and evaluate the performance and programmability
of the architecture. The algorithms: Dijkstra; matrix multiplication; the
N-queens’s problem solution with a parallel genetic algorithms; Dining philosophers problem
and Laplacian Edge Detector have been developed and implemented in a SystemC
simulator. The experiments shows the platform’s performance when running the algorithms
and the impact that the communication using the network chip has on applications.