Estudio de rendimiento en GPU
Loading...
Download
Official URL
Full text at PDC
Publication date
2010
Authors
Advisors (or tutors)
Editors
Journal Title
Journal ISSN
Volume Title
Publisher
Citation
Abstract
En la actualidad las plataformas multicore lideran la industria de los computadores, obligando a los desarrolladores software a adaptarse a nuevos paradigmas de programación para poder explotar su capacidad de cómputo. A día de hoy uno de los principales exponentes de las plataformas multicore son las unidades de procesamiento gráfico (GPUs). El desarrollo de aplicaciones para GPU requiere un alto esfuerzo por parte de los programadores. Por un lado, deben modelar los problemas de modo que permitan el aprovechamiento de plataformas masivamente paralelas. Por otro lado, deben preocuparse de que las aplicaciones hagan un uso eficiente del sistema de memoria, heterog´eneo, de múltiples niveles, con gestión software o hardware. En general, dado un algoritmo concreto, el
espacio de soluciones posibles para un mapeo sobre GPU es enorme. El recurso habitual de los programadores es el ensayo, prueba y error de distintas soluciones, guiados sólo
por su propia experiencia e intuici´on, lo que resulta ineficiente de cara al desarrollo y mantenimiento de software. En este proyecto hemos realizado un estudio sobre el impacto de distintas transformaciones de código de alto nivel en el rendimiento de distintos algoritmos en la GPU.
Nuestro objetivo consiste en evaluar las distintas decisiones que deber´ıa tomar cualquier
desarrollador al mapear un algoritmo sobre la GPU, identificando así aquellas que sean más importantes. Para ilustrar los resultados hemos utilizado como hilo conductor de la memoria la multiplicación de matrices. La extensi´on futura del trabajo consistiría en la definición de una metodología eficiente para el mapeo de aplicaciones sobre GPU.
[ABSTRACT]
At present, multicore platforms lead the computer industry, forcing software developers to adapt to new programming paradigms, in order to fully exploit their computing capabilities. Nowadays, graphics processing units (GPUs) are one of the main representatives of multi-core platforms.
The GPU application development requires a great effort by application programmers. On one hand, they must take advantage of massively parallel platform in the problem
modeling. On the other hand, the applications have to make an efficient use of the memory system, which is heterogeneous, with several levels that are software or hardware controlled. Given a specific algorithm, the search space for the mapping is huge. Generally the programmers’ methodology consists in evaluating several mapping alternatives, guided by their experience and intuition, which results inefficient for software development and
maintenance. This project deals with the study of the impact of several high level code transformations in the performance of different algorithms on the GPU. Our goal is the evaluation of the decisions that a programmer needs to make in the process of mapping an application on the GPU, identifying the most relevant. We use the matrix multiplication algorithm to illustrate our work. In the future this work will be completed by the definition of an
efficient methodology for the mapping process.
Description
Máster en Investigación en Informática, Facultad de Informática, Departamento de Arquitectura de Computadores y Automática, curso 2009-2010