AMD presenta hUMA, una nueva manera de potenciar la integración de CPU y GPU

por Antonio Delgado 30/04/2013 ...

AMD ha apostado fuerte por la integración total de CPU y GPU en un mismo chip para aprovechar al máximo las posibilidades de computación GPGPU para acelerar y apoyar al procesador en tareas convencionales, bajo esa filosofía nacieron las APU o Unidades de procesamiento acelerado. Ahora el siguiente paso era optimizar más aún este concepto, existen GPU con una potencia de cálculo muy superior a cualquier procesador, aunque centrada naturalmente en campos muy específicos, por lo que era necesario intentar sacar todo el provecho posible a esa potencia para tareas más allá de los juegos y aceleración 3D., y para ello AMD ha presentado una nueva arquitectura llamada hUMA (heterogeneus Uniform memory Access) basada en HSA (Heterogeneus System Architecture) que pretende unificar la GPU y CPU de una manera más natural y eficiente.

Hasta ahora los procesadores de varios núcleos acceden a la memoria de manera uniforme (UMA), compartiendo el espacio de direcciones entre todos y pudiendo ver y acceder cada núcleo a todo el conjunto de memoria. Cuando se introduce una GPU para computación, el espacio de memoria al que accede está separado de la memoria a la que tiene acceso el procesador, por lo que el acceso no es uniforme (nUMA), de tal manera que cuando se requiere que la GPU procese ciertos datos, lo habitual es que el procesador los copie de su propia memoria y los envíe al espacio de memoria de la GPU, donde se copia para que la GPU pueda procesar esos datos, en caso de que se quiera enviar de nuevo al procesador, habría que repetir el proceso. Esto, a parte de reducir eficiencia y añadir una latencia al proceso de datos entre CPU y GPU, representa una complejidad mayor para los desarrolladores, que tienen que tener en cuenta el acceso a los distintos espacios de memoria y copiar y verificar los datos, utilizar APIs específicas, etc, y por lo tanto añade un mayor costo y tiempo al desarrollo de aplicaciones que utilicen la aceleración por GPU.

AMD presenta hUMA, una nueva manera de potenciar la integración de CPU y GPU, Imagen 1

El concepto que introduce la arquitectura hUMA es el de un mismo espacio de memoria para la CPU y la GPU, utilizando el mismo espacio de memoria lógico. Esto permite que, al igual que en un procesador de varios núcleos, cada núcleo puede acceder a todo el espacio de memoria, la GPU también lo pueda hacer, de manera que no hay necesidad de copiar los datos de la memoria de la CPU a la de la GPU para su proceso, con la arquitectura hUMA ambas pueden reservar memoria dinámicamente cogiéndola de todo el espacio disponible, tanto en memoria física como virtual, por lo que cualquier modificación de los datos realizada por la GPU o por la CPU, será vista al instante por cualquiera de las dos, sin necesidad de verificar ni actualizar los datos. 

Otra novedad que se introduce es el soporte para punteros, variables que referencian o "apuntan", a una zona de memoria, de manera que es mucho más sencillo para el programador utilizarlas, modificarlas o crear estructuras de datos más complejas y dinámicas. Hasta ahora, el espacio de memoria de las GPU no permitía el uso de punteros, con hUMA la GPU podrá acceder mediante punteros a las estructuras de datos, por lo que para enviar un dato de la CPU a la GPU tan solo hará falta enviar ese puntero o referencia, simplificando enormemente la tarea de los desarrolladores. Además AMD ya ha anunciado que esta arquitectura tendrá soporte para lenguajes de programación ya utilizados y conocidos de manera general, como son Java, C++, o Phyton y sin necesidad de APIs especiales.

AMD presenta hUMA, una nueva manera de potenciar la integración de CPU y GPU, Imagen 2

Todo esto se convierte para el consumidor en aplicaciones más potentes con un mayor aprovechamiento de recursos, mayor rendimiento y una optimización del consumo

La arquitectura hUMA se ha publicado como un estándar abierto disponible para cualquier compañía, por lo que varias empresas ya han mostrado su apoyo al proyecto, entre ellas, a parte de la propia AMD, encontramos a fabricantes tan importantes como ARM, Qualcomm y Samsung entre otros.

Un punto muy interesante es que podremos ver los primeros chips utilizando esta tecnología durante la segunda mitad de este mismo año 2013, momento en el que llegarán las APU Kavery de AMD incluyendo el acceso heterogéneo y unificado a la memoria y la arquitectura HSA (arquitectura de sistema heterogénea). También, según lo visto hasta la fecha del chip que llevará la PlayStation 4, si bien sus detalles son todavía escasos, se trata de una APU de AMD que compartirá la memoria, del tipo GDDR5 entre la GPU y procesador, utilizando una tecnología similar, o incluso la misma, que hUMA.

AMD presenta hUMA, una nueva manera de potenciar la integración de CPU y GPU, Imagen 3