Skip to main content

Automatic code generation for Graphics Processing Units

Article Category

Article available in the folowing languages:

Hacia una tecnología informática más potente

El progreso en la tecnología de las unidades de procesamiento gráfico (GPU) podría dar lugar a un cambio de paradigma en la fabricación de procesadores informáticos. Un proyecto emprendedor financiado con fondos de la Unión Europea logró progresos importantes en este campo.

Economía digital

Las GPU, fundamentales para los juegos informáticos más sofisticados, son cada día más populares entre científicos e investigadores dedicados a la informática por sus aplicaciones en la computación numérica de alto rendimiento. El precio de la tecnología de GPU se ha reducido enormemente gracias a la demanda que ha creado el mercado de los videojuegos, hasta el punto de que dicha tecnología se plantea como una alternativa rentable con la que avanzar en la computación de alta velocidad. El proyecto «Automatic code generation for graphics processing units» (AUTH-AUTOGPU) contó con fondos europeos para prolongar el ciclo de vida de los códigos numéricos optimizados de las GPU a fin de aumentar su eficacia en aplicaciones más cotidianas de computación. Uno de los objetivos fue el desarrollo de un lenguaje de programación de algoritmos numéricos con un alto grado de paralelismo explícito y con aplicaciones en el procesamiento de señales e imágenes. En AUTH-AUTOGPU se optó por automatizar la generación de código mediante un compilador, plantillas de código y bibliotecas de algoritmos especiales. El empleo de técnicas de búsqueda y optimización avanzadas permitió a sus socios automatizar también el ajuste de componentes de software fundamentales para el rendimiento. El equipo al cargo de la investigación programó una plataforma denominada AUToGPU que facilitó el diseño y el prototipado de algoritmos de computación en paralelo con los que procesar señales e imágenes digitales. De este modo se aceleró el ciclo de desarrollo —en concreto el relacionado con las GPU—, automatizando la optimización del rendimiento, adaptándose a las actualizaciones de hardware de las GPU y logrando que el software fuese más «ágil». AUToGPU aprovecha técnicas de compilador específico y abstracciones matemáticas innovadoras para lograr progresos en la computación de alto rendimiento mediante la manipulación de estructuras matemáticas específicas de dominios y estableciendo correspondencias entre estas y la arquitectura de la GPU. De este modo se logra procesar con mayor eficacia una abstracción unificada de los algoritmos de las expresiones matemáticas de alto nivel. Las normas obtenidas se aprovechan para transformar la abstracción del algoritmo en variantes equivalentes a través de identidades matemáticas. La exploración de las variantes algorítmicas contribuye a desarrollar aplicaciones adicionales de la plataforma de computación en paralelo y del modelo de programación denominado Arquitectura Unificada de Dispositivos de Cómputo (CUDA), creado por el gigante empresarial de los gráficos NVIDIA. Dicho todo lo anterior, el enorme éxito de NVIDIA y de su arquitectura de GPU en el mercado de la computación de alto rendimiento está abriendo nuevas vías para las grandes empresas proveedoras de microprocesadores. Tanto AMD como Intel han hecho incursiones en el mercado de los aceleradores gráficos ante el aumento del interés por esta tecnología. Por tanto, AUToGPU podría en breve ser de utilidad para una gama mucho mayor de procesadores, sobre todo si se tiene en cuenta que la arquitectura de las GPU se consolidará, con casi total probabilidad, en el ámbito del diseño de microprocesadores.

Palabras clave

Tecnología informática, unidad de procesamiento gráfico, procesador informático, computación numérica, juegos de ordenador, computación de alta velocidad, generación de código, programación, algoritmos de computación en paralelo, microprocesador

Descubra otros artículos del mismo campo de aplicación