Dissertação

{en_GB=Global Illumination with GPU Vertex Connection and Merging} {} EVALUATED

{pt=Ao longo dos anos têm havido desenvolvimentos contínuos no campo dos gráficos gerados por computador. Em 2012 foi apresentado um novo algoritmo de renderização, o vertex connection and merging, que consiste na utilização de diferentes algoritmos já existentes para processar uma cena. A principal desvantagem desta abordagem encontra-se no tempo que demora a criar um render realista. Uma das abordagens possíveis para reduzir o tempo necessário para processar a informação, está na utilização de uma unidade de processamento gráfico, de forma a tirar partido dos seus múltiplos núcleos de processamento e das suas capacidades de paralelização de instruções. Os algoritmos de renderização são, por natureza, algoritmos que utilizam a memória de uma forma que não é a mais eficiente. Isto deve-se ao facto de caminhos traçados entre a câmara e fontes de luz poderem seguir caminhos bastante distintos, mesmo para pixeis vizinhos, o que causa acessos a zonas distantes na memória. Por outro lado, o processamento de aplicações segundo o modelo de programação CUDA é mais eficiente quando a memória é acedida de forma mais eficiente. Esta tese explora a adaptação de uma implementação do vertex connection and merging para ser processada no GPU, tendo sido originalmente desenvolvida para ser processada no CPU, com o intuito de obter imagens geradas por computador de uma forma mais rápida. É feita uma análise extensiva do desempenho utilizando as ferramentas de profiling da NVIDIA, e no final, esta análise justifica o porquê dos resultados não serem os esperados., en=There have been continuous developments in the field of computer generated graphics. In 2012, a new algorithm was presented, the vertex connection and merging, which consists in using different already existing algorithms to process a scene. The main disadvantage of this approach consists in the time it takes to create a realistic render. One of the possible approaches to reduce the time needed to process the information is the usage of a graphics processing unit, in order to take advantage of its multiple cores and parallelization capabilities. The rendering algorithms use, by nature, memory not in the most efficient way, with cache memory as an example. This is due to paths traced between camera and light sources having the possibility to be created in very distinct directions, even for adjacent pixels, which causes distant memory positions to be accessed. On the other hand, CUDA applications are the most efficient when efficient memory access patterns are used. This thesis explores the conversion of an implementation of the vertex connection and merging algorithm, originally developed to be processed on the CPU, to be processed using NVIDIA GPUs. The goal of this conversion is to have images generated faster by the computer. A detailed analysis of the performance is done using the profiling tools provided by NVIDIA, and in the end, this analysis explains why the obtained results are different from the expected.}
{pt=CUDA, GPU, VCM, paralelismo, renderização, en=CUDA, GPU, VCM, parallelism, rendering}

Outubro 1, 2020, 18:0

Publicação

Obra sujeita a Direitos de Autor

Orientação

ORIENTADOR

João António Madeiras Pereira

Departamento de Engenharia Informática (DEI)

Professor Associado