Dissertação

{en_GB=Gacuda - a Genetic Algorithm Framework over GPUs} {} EVALUATED

{pt=Os processadores gráficos (GPUs) têm vindo a evoluir rapidamente desde o seu aparecimento. Inicialmente apenas destinados a providenciar aceleração por hardware nos cálculos de gráficos 2D e 3D, estes servem agora também para providenciar aceleração aos cálculos genéricos tradicionalmente processados pelo processador central (CPU) do computador. No entanto, a programação sobre GPUs requer o conhecimento da arquitetura e do modelo de programação destes. O tempo necessário para obter estes conhecimentos pode fazer com que muitas vezes o GPU não seja a plataforma escolhida, mesmo em problemas altamente paralelizáveis onde teria melhor desempenho do que correndo no CPU. Normalmente, devido ao elevado número de unidades de processamento dos GPUs, em problemas onde é necessário executar a mesma operação várias vezes em dados diferentes têm um desempenho muito superior quando executados no GPU em relação à sua execução no CPU. Um exemplo de tais problemas são os algoritmos genéticos, problemas visados por este trabalho. Nesta dissertação apresenta-se Gacuda, um motor de algoritmos genéticos que corre sobre GPUs. Este possibilita a utilização do GPU para executar algoritmos genéticos de uma maneira mais simples, escondendo a complexidade da programação do GPU para o utilizador do motor através da API fornecida mas ao mesmo tempo mantendo os benefícios em termos de desempenho. Em termos de código, apenas é necessário desenvolver um pequeno conjunto de funções na linguagem de programação C, sem detalhes sobre o GPU., en=Graphics processing units (GPUs) have been evolving rapidly since their first appearance. Initially only destined to provide hardware acceleration in 2D and 3D graphics calculations, they can now also be used to accelerate generic calculations, traditionally reserved to the central processing unit (CPU) of the computer. However, programming for GPUs requires knowledge of the architecture and their programming model. The effort required to obtain this skill set can mean that many times the GPU is not utilized in problems where it would obtain better performance than the CPU. Normally, due to the high number of processing units of the GPUs, problems where it is necessary to execute the same operation multiple times on different data have much higher performance when executed on a GPU than on a CPU. One example of such problems are the genetic algorithms, addressed in this work. This thesis presents Gacuda, a framework for developing genetic algorithms running over GPUs. It allows the use of the GPU to execute the genetic algorithms in a simpler way, hiding the complexity of programming for the GPU to the developer, while at the same time maintaining the performance benefits of executing on the GPU. In terms of code, all that is required is the development of a few functions in completely regular C programming language, without GPU details.}
{pt=GPU, algoritmo genético, CUDA, motor, en=GPU, genetic algorithm, CUDA, framework}

maio 25, 2016, 9:0

Publicação

Obra sujeita a Direitos de Autor

Orientação

ORIENTADOR

José Carlos Alves Pereira Monteiro

Departamento de Engenharia Informática (DEI)

Professor Associado