AMD Mantle: El API gráfica que aprovecha al máximo los GDC

AMD Mantle: El API gráfica que aprovecha al máximo los GDC

por

AMD re-define el término GPUs (Graphics Processing Unit), convirtiéndolo en GCD (General Compute Device).

AMD considera que el término GPU (Graphics Processing Unit) ha quedado obsoleto, dado que estos no sólo realizan tareas gráficas y además están conformados por múltiples unidades de cálculo como UVD (decodificación de videos acelerada por hardware), VCE (codificación de videos acelerada por hardware), TrueAudio (efectos de audio acelerados por hardware), entre otras; por lo que son considerados por AMD como procesadores heterogéneos por lo que ahora los denomina GCD (General Compute Device).

Mantle a fondo

En los últimos 2 meses, AMD ha revelado algunos pocos detalles sobre su API gráfica Mantle (antes de continuar leyendo, les recomendamos leer los siguientes artículos sobre Mantle: 1, 2 y 3), pero durante el evento APU 13, por fin revelan detalles a profundidad de esta nueva e interesante API gráfica.

Mantle es una “delgada” capa de abstracción, la que permite asignar hilos de procesamiento a cada una de las unidades de cálculo presentes en el equipo (núcleos del CPU, núcleos gráficos “shader processors” y unidades dedicadas), cada uno de ellos con acceso directo a la memoria (DMA) del sistema y gráfica, eliminando las restricciones al rendimiento y control de recursos de APIs gráficas actuales como DirectX y OpenGL.

El modelo basado en tareas (multi-hilo) de Mantle (a diferencia del modelo serial de otras API gráficas), permite que el CPU se convierta en una unidad paralela que beneficie al rendimiento gráfico (adiós al cuello de botella originado al GPU por el procesamiento serial o mono-hilo), ayudando a exprimir todo el potencial del GPU o de múltiples GPUs simétricos (CrossFireX) o asimétricos (Hybrid CrossFireX), además de ayudar a ofrecer una baja latencia.

Dado su enfoque basado en tareas, Mantle permite a los desarrolladores una sencilla forma de alcanzar el rendimiento objetivo planeado para sus aplicaciones, ahorrándoles el tiempo consumido en optimizar sus títulos para los “impredecibles” APIs gráficos actuales (DirectX y OpenGL), los que AMD considera que no han podido seguir el ritmo evolutivo del hardware gráfico actual.

El rendimiento de Mantle

Con el hardware gráfico actual (Radeon R9 290X) Mantle permite realizar hasta 100000 (100K) llamadas gráficas sin saturarse, cifra muy superior a DirectX, API que se satura al manejar cerca de 15000 llamadas gráficas (peticiones de dibujo simultáneas).

Oxide Games afirma que su motor Nitrous (en modo DirectX) es capaz de mostrar 1000 personajes/vehículos (P/V) simultáneamente en pantalla y cada uno de ellos con sus respectivos efectos (15000 llamadas gráficas), con una latencia de 99 milisegundos (ms) usando un microprocesador Intel Core i7-4770K “Haswell-DT” (4 núcleos/8 hilos de procesamiento), rendimiento que no se ve afectado incluso si se fuerza a usar 5 hilos de procesamiento. En modo Mantle, Nitrous es capaz de replicar el escenario anterior (aún sin optimizarlo hacia el GPU) con una latencia de apenas 5ms.

Incrementando el número de llamadas gráficas, Oxide en modo Mantle consigue los siguientes logros usando un microprocesador AMD FX-8350 “Vishera”:

  • 30000 llamadas gráficas (2000 P/V) con una latencia de 8ms.
  • 100000 llamadas gráficas (5000 P/V) con una latencia de 25ms.

Oxide también realizó pruebas con el microprocesador Intel Core i7-4770K “Haswell-DT”, obteniendo los mismos resultados mencionados, los que se mantuvieron incluso underclockeando al microprocesador AMD FX-8350 “Vishera” 2.0GHz, configuración que afirman no representa cuello de botella alguno, para un GPU de gama alta como Radeon R9 290X “Hawaii XT”.

Oxide afirma que el rendimiento del juego StarSwarm (basado en Oxide) es 3 veces superior con Mantle (en comparación con DirectX) en situaciones donde se vería limitado por el CPU, ello gracias a la eficiente administración de múltiples hilos de procesamiento del microprocesador; factor que beneficiará a los usuarios que posean microprocesadores capaces de ejecutar 4, 6 o más hilos de procesamiento simultáneamente. Factor que sin dudas cambiará la perspectiva de muchos usuarios sobre los microprocesadores.

Se espera que Mantle se mantenga a la par con la evolución del hardware gráfico, por lo que esperan que sea capaz de ejecutar 350000 llamadas gráficas simultáneas para el 2018, cifra 250% superior a las 100000 llamadas gráficas mostradas.

Hardware soportado por Mantle

Dado su moderno diseño, Mantle es capaz de aprovechar el hardware actual y futuro (CPUs, APUs/SoCs y GPUs/GCDs), ofreciendo soporte nativo y óptimo a muchas de las tecnologías actuales:

  • Microprocesadores multi-núcleo: Mantle soporta hasta 12 hilos de procesamiento (¿será que AMD planea futuros CPU FX conformados por 6 módulos?), haciendo un uso óptimo de la capacidad multi-hilo masiva de los microprocesadores actuales.
  • Múltiples GPUs/GDCs/APUs/SoCs funcionando en conjunto: Mantle hace un uso óptimo de los modernos GPUs, incluso en configuraciones multi-GPU (CrossFireX), aunque estas sean asimétricas, permitiendo combinar el poder gráfico de diversos GPUs con distintas configuraciones (e incluso combinarlos con APUs/SoCs), sin las restricciones de APIs como DirectX/OpenGL (las que no aprovechan de forma correcta más de 2 o 3 GPUs homogéneos).

AMD afirma que Mantle será un API estándar de la industria, pues no está ligado a la arquitectura gráfica AMD Graphics Core Next, por lo que es un API eficiente para cualquier GPU moderno, incluso GPUs de otros fabricantes que deseen adoptar el API, Oxide menciona que Mantle también podría funcionar muy bien en la arquitectura gráfica Nvidia Kepler.

Sistemas operativos soportados por Mantle

En una entrevista que nos concedió hace algún tiempo, AMD ya nos había adelantado que Mantle no sería un API exclusivo para Microsoft Windows, por lo que AMD pretende llevarla también hacia otras plataformas como Google Android, Apple Mac OS X y Linux, dentro de esta última categoría, se incluye a Valve SteamOS (el sistema operativo de las Steam Machines).

Link: Evento AMD APU 13.

También pueden comentar en nuestro foro.