Publication:
Estudio de rendimiento en GPU

Loading...
Thumbnail Image
Official URL
Full text at PDC
Publication Date
2010
Editors
Journal Title
Journal ISSN
Volume Title
Publisher
Citations
Google Scholar
Research Projects
Organizational Units
Journal Issue
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
Unesco subjects
Keywords
Citation