A. Librerías para GPGPU

Han ido de la mano a la aparición del hardware y la presentación de las nuevas librerías gráficas y SDK para el manejo del nuevo hardware. Por un lado los fabricantes han sacado al mercado soluciones específicas para su arquitectura, por otro lado, nos encontramos con la iniciativa del grupo Khronos para crear un lenguaje común para desarrollo de aplicaciones que exploten las tecnologías GPGPU.
Así AMD en 2006 comenzaría con su anuncio de CTM™ ("Close To Metal"). Se trata de un SDK para uso de su arquitectura FireStream recién estrenada por esa misma época. Esta interfaz proporciona a los desarrolladores un completo acceso al conjunto de instrucciones nativas y la memoria de los elementos de cálculo masivamente paralelos de las GPUs de AMD. Con CTM, las GPUs se convierten en poderosas arquitecturas abiertas programables, como las CPUs de hoy. Al liberar la arquitectura, CTM ofrece a los desarrolladores de hardware, un acceso de bajo nivel, determinista y repetible necesario para desarrollar las herramientas esenciales como compiladores, depuradores, bibliotecas de matemáticas y plataformas de aplicaciones.
En diciembre de 2007 y como continuación con su compromiso con un entorno completo de desarrollo de software que libere el sorprendente poder informático de las GPUs de AMD, AMD presentó ATI Stream SDK. Con ATI Stream SDK, AMD añadió un nuevo lenguaje de alto nivel, denominado ATI Brook+. CTM evolucionó a ATI CAL (nivel de abstracción de cálculo), el nivel de API compatible con Brook+. La aparición de Brook+ significó que AMD fue capaz de ofrecer una completa pila de desarrollo completamente gratis para el desarrollo de ATI Stream.
En junio de 2008, AMD y varios líderes del sector de GPGPUs, así como otras tecnologías de aceleradores, formaron el grupo de trabajo OpenCL bajo la denominación The Khronos Group. Khronos es artífice de otras especificaciones bien conocidas como OpenGL, y realizó la apuesta adecuada al enfocarse en la especificación OpenCL.
El 9 de diciembre de 2008 The Khronos Group anunció la puesta en el mercado de la especificación OpenCL 1.0. Mientras tanto, AMD también integró bibliotecas de rutinas para CAL en la suite del controlador ATI Catalyst, liberando las capacidades de aceleración de ATI Stream ya incorporadas en millones de tarjetas gráficas ATI Radeon. A principios de 2009, inmediatamente después de la presentación de la especificación OpenCL 1.0, AMD anunció su intención de adoptar rápidamente el estándar de programación OpenCL 1.0 e integrar un compilador y rutinas compatibles en su ATI Stream SDK.
nVidia desde la presentación en 2006 de la GeForce 8800 GTX comenzó la senda de CUDA, que se propone de un entorno software de librerías especializadas para extraer el máximo rendimiento al hardware. Evidentemente este entorno implica una dependencia del fabricante para obtener nuevas características y prestaciones, se discutirá todo esto y más en el siguiente post.
Una iniciativa que recientemente ha terminado su andadura es Sh o Libsh , se trata de un lenguaje de alto nivel para programación en GPU, con una sintaxis similar a C++, es el resultado de la investigación del laboratorio de gráficos por ordenador de la universidad de Waterloo. Concretamente el lenguaje fue concebido por Michael McCool e implementado por varios miembros del laboratorio.
En el próximo post hablaremos más detalladamente de la evolución de CUDA, hasta entonces!
No hay comentarios:
Publicar un comentario