Defesa de Mestrado de Rafael Cardoso Fernandes Sousa

Título do Trabalho
Data Coherence Analysis and Optimization
Candidato(a)
Rafael Cardoso Fernandes Sousa
Nível
Mestrado
Data
Add to Calender 2017-03-24 00:00:00 2017-03-24 00:00:00 Defesa de Mestrado de Rafael Cardoso Fernandes Sousa Data Coherence Analysis and Optimization Auditório do IC 2 - Sala 85 INSTITUTO DE COMPUTAÇÃO mauroesc@ic.unicamp.br America/Sao_Paulo public
Horário
14:30
Local
Auditório do IC 2 - Sala 85
Orientador(a)
Guido Costa Souza de Araújo
Banca Examinadora

Titulares:
Guido Costa Souza de Araújo (IC/UNICAMP)
Fernando Magno Quintão Pereira (DCC/UFMG)
Sandro Rigo (IC/UNICAMP)
Suplentes:
Lucas Francisco Wanner (IC/UNICAMP)
Alexandro José Baldassin (IGCE/UNESP)

Resumo

Embora a computação heterogenea tenha permitido ganhos de desempenho (speed-ups) impressionantes, o conhecimento sobre a arquitetura dos dispositivos aceleradores para colher todos os benefícios de seu hardware ainda é algo crítico. A programação em cima dessas arquiteturas é complexa, propensa a erros e geralmente é feita por meio de linguagens especializadas (por exemplo, CUDA) ou bibliotecas (por exemplo, OpenCL). Em particular, para os programadores não especialistas, o custo de mover e manter dados coerentes entre host e o dispositivo acelerador (device) pode facilmente eliminar quaisquer ganhos de desempenho alcançados pela aceleração. Esta dissertação propõe Análise de Coerência de Dados (DCA), uma simples e útil técnica de análise de fluxo de dados que determina como as variáveis são usadas pelo host/device em cada ponto do programa. Ela também introduz a Otimização de Coerência de Dados (DCO), um algoritmo baseado em DCA que: (a) usa informações das variáveis para alocar buffers OpenCL compartilhados entre o host e o device; e (b) inserir chamadas de função OpenCL apropriadas em pontos do programa de modo a minimizar o número de operações de coerência de dados. O DCO foi implementado no compilador GPUClang LLVM que é capaz de traduzir automaticamente os loops anotados do OpenMP 4.X para kernels OpenCL, escondendo assim toda a complexidade da programação direta no OpenCL. Os resultados experimentais revelam que, enquanto GPUClang mostra desempenho de até 78x, GPUClang com DCO consegue speed-ups de até 84x em programas do benchmark Polybench rodando em um Exynos 8890 Octacore CPU com ARM Mali-T880 MP12 GPU e até 92x em um Processador dual core Intel Core i5 de 2,4 GHz equipado com uma unidade Intel Iris GPU.