| Nome: | Descrição: | Tamanho: | Formato: | |
|---|---|---|---|---|
| 4.43 MB | Adobe PDF |
Autores
Orientador(es)
Resumo(s)
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.
Descrição
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.
Palavras-chave
OpenCL CUDA Computação de alto desempenho GPU Múlti-núcleos Speedup
Contexto Educativo
Citação
Editora
Instituto Politécnico de Leiria
