Publicação
OpenCL-MMP : codificação de imagens com sistemas com múltiplos núcleos
| dc.contributor.author | Silva, João Filipe Crespo | |
| dc.date.accessioned | 2015-07-10T09:50:38Z | |
| dc.date.available | 2015-07-10T09:50:38Z | |
| dc.date.issued | 2015 | |
| dc.description | Dissertação apresentada à Escola Superior de Tecnologia e Gestão do IPL para obtenção do grau de Mestre em Engenharia Informática - Computação Móvel, com orientação do Doutor Patrício Rodrigues Domingues e coorientação do Doutor Nuno Miguel Morais Rodrigues e do Doutor Sérgio Manuel Maciel Faria. | por |
| dc.description.abstract | Esta tese, no âmbito dos projetos “EPIC - Efficient Pattern-matching Image Compression on many-core systems” - PTDC/EIA-EIA/122774/2010 e “ OPAC - Optimization of patternmatching compression algorithms for GPU’s” - PEst-OE/EEI/LA008/2013, investiga a adaptação e otimização de um algoritmo de compressão de imagens assente na metodologia de correspondência de padrões para sistemas de processamento gráfico de alto desempenho, isto é, as placas gráficas (GPU). O foco principal foi a migração do algoritmo Multiscale Multidimensional Parser (MMP) para um sistema de múlti-núcleos utilizando CUDA e OpenCL. Esta dissertação foca particularmente a adaptação do algoritmo MMP ao paradigma OpenCL, onde foi necessário proceder a um estudo do algoritmo existente e identificar as funções que consumiam a maior percentagem de tempo de processamento e aferir a viabilidade de o transcrever para um paradigma de processamento paralelo. A principal ação detetada para efeitos de paralelização prende-se com as pesquisas que o algoritmo efetua sob um dicionário adaptativo na busca do melhor elemento que identifica determinado bloco. Esta pesquisa é efetuada durante a codificação dos blocos e na atualização do dicionário, no final da codificação de cada bloco. Para tal, foram criados quatro funções a executar pela GPU, denominados de kernels. Os dois primeiros kernels são executados durante a codificação dos blocos têm como objetivo devolver o melhor elemento do dicionário para cada partição do bloco. O terceiro e quarto kernels são responsáveis pela atualização do dicionário: um efetua o controlo de redundância dos elementos do dicionário e o outro fica responsável por atualizar o dicionário presente em memória da GPU. Os dois protótipos implementados, CUDA-MMP e OpenCL-MMP, permitiram ganhos de tempo na ordem de 2 a 10 vezes, mantendo a qualidade de compressão original. Estes resultados permitem concluir que os paradigmas de multi-núcleo permitem acelerar o desempenho das aplicações. Contudo, este desempenho apenas é conseguido com um estudo iterativo dos kernels e otimizando-os de forma a garantir o máximo de desempenho por parte da GPU. | por |
| dc.identifier.tid | 201878470 | |
| dc.identifier.uri | http://hdl.handle.net/10400.8/1383 | |
| dc.language.iso | por | por |
| dc.publisher | Instituto Politécnico de Leiria | por |
| dc.subject | OpenCL | por |
| dc.subject | CUDA | por |
| dc.subject | Computação de alto desempenho | por |
| dc.subject | GPU | por |
| dc.subject | Múlti-núcleos | por |
| dc.subject | Speedup | por |
| dc.title | OpenCL-MMP : codificação de imagens com sistemas com múltiplos núcleos | por |
| dc.type | master thesis | |
| dspace.entity.type | Publication | |
| rcaap.rights | openAccess | por |
| rcaap.type | masterThesis | por |
