OpenACC: El API GPGPU Post-CUDA

OpenACC: El API GPGPU Post-CUDA

por

Nvidia promueve nuevo API GPGPU que reemplazará a CUDA.

Compute Unified Device Architecture, más conocido como CUDA, es el API GPGPU desarrollado por Nvidia, cuya primera versión fue estrenada el 15 de febrero del 2007, el cual es la base sobre la que funcionan muchas aplicaciones científicas, de encoding de videos, entre otras como la aplicación de físicas aceleradas por GPU PhysX. Ahora es la propia Nvidia la que anuncia a su sucesor, al cual denominan OpenACC, un API GPGPU estándar abierto, el cual fue desarrollado por The Portland Group (PCI), Cray y Nvidia con el apoyo de CAPS.

CUDA según la propia Nvidia es un API que ofrece un entorno de programación de bajo nivel (implica mayor conocimiento del funcionamiento específico del chip), lo cual lo ha mantenido alejado de los programadores, y se ha visto relegado únicamente al campo científico, pero esta situación cambiará con OpenACC, el cual provee un entorno de programación paralelo de alto nivel con mayor orientación al grueso de programadores, además puede ser insertado en el código estándar C, C++ y Fortran para dirigir al compilador para paralelizar ciertas secciones del código, encargándose de la logística del traslado de datos entre el CPU y GPU y viceversa dirigiendo su ejecución al procesador adecuado.

OpenACC permitira a los desarrolladores aprovechar la aceleración paralela, con tan sólo pequeñas modificaciones a su código existente (o nuevo). Persiguiendo con ello incrementar el número de desarrolladores de aplicaciones paralelas que usen su propio estándar, pues según Nvidia estima que el número actual de programadores en el mundo que usan CUDA es cercano a los 100000, cifra que esperan incrementar considerablemente gracias a las facilidades que les proveerá OpenACC, el cual de inmediato ha conseguido el apoyo de OpenMP, la actual plataforma de cómputo paralelo con mayor uso, los que están trabajando para implementar las directivas de OpenACC dentro del propio OpenMP.

OpenACC vs CUDA: Rendimiento

En este punto confiesan que el rendimiento de las aplicaciones programadas con OpenACC tendrán un rendimiento ligeramente inferior a las programadas por CUDA (entre 5% a 10%), detalle que es compensado con el mayor número de desarrolladores a los cuales puede llegar el nuevo API.

OpenACC vs CUDA: Plataformas soportadas

En este punto cabe mencionar que el mayor punto débil de CUDA es que su plataforma base está limitada a los GPUs de la propia Nvidia. OpenACC por otro lado aunque aún no ha recibido el apoyo de otros grandes de la industria como Intel ni AMD, ello no impide que sus desarrolladores (PGI, Cray y CAPS) puedan implementar compiladores que funcionen en los CPUs y GPUs de AMD e Intel, o en chips de cualquier otra arquitectura.

Link: NVIDIA Eyes Post-CUDA Era of GPU Computing  (HPC Wire)

Pueden también comentar esta noticia en nuestro foro.