Uma Plataforma Multicore Compatível com o Modelo de Programação OpenCL
OpenCL. multicore. heterogêneo. modelo de programação. many core. GPU. CPU
Atualmente, arquiteturas multicores dominam a indústria de microprocessadores. Entretanto, enquanto o número de núcleos integrados em um único chip aumenta, cresce também a necessidade de um modelo de programação adequado para programar estas novas arquiteturas. O problema se tornou mais complicado com o advento das arquiteturas heterogêneas. Estes são sistemas computacionais que fazem uso de vários elementos de processamento com diferentes arquiteturas. Nos últimos anos, OpenCL surgiu como a principal alternativa como um modelo de programação para arquiteturas heterogêneas, e vem atraindo a atenção da comunidade de desenvolvedores de software e hardware. A principal caracteristica do framework OpenCL é a portabilidade de código, que faz com que ela seja ideal para programação heterogênea. No entanto, estudos mostram que OpenCL apresenta uma diferença considerável de performance, principalmente quando comparadas as execuções em GPU e CPU. Por este motivo, neste trabalho é proposta uma plataforma multicore compatível com a programação OpenCL. A compatilidade é promovida pela implantação de hardware dedicado a troca de contexto entre as thread em execução(work-item) e gerenciamento da execução. A plataforma conta também, com um modelo de memória pensado para oferecer compatibilidade com o modelo de memória OpenCL.