Historia y Evolución.
Diferencias con la CPU
Arquitectura de la GPU
GPU en los smartphones
¿Donde se encuentra el procesador gráfico en los smartphones
¿De qué se encarga la GPU en un smartphone?
GPU Adreno de Qualcomm
Imagination Tech: GPU PowerVR
ARM Mali GPU
NVIDIA: ULP GeForce GPU
Comparativa de GPUs en smartphones.
GPU: Historia y evolución
La unidad de procesamiento gráfico o GPU (graphics processing unit) es un coprocesador dedicado al procesamiento de gráficos u operaciones de coma flotante, existe básicamente para aligerar la carga de trabajo al procesador central en videojuegos o en aplicaciones 3D interactivas.
De esta forma, mientras gran parte de lo relacionado con los gráficos se procesa en la GPU, la unidad central de procesamiento (CPU) puede dedicarse a otro tipo de cálculos (como la inteligencia artificial o los cálculos mecánicos en el caso de los videojuegos).
La GPU implementa ciertas operaciones gráficas llamadas primitivas optimizadas para el procesamiento gráfico. Una de las primitivas más comunes para el procesamiento gráfico en 3D es el antialiasing o suavizado de bordes (evita el aliasing que es un efecto visual tipo “sierra” o “escalón”). Las GPU actualmente disponen de gran cantidad de primitivas, buscando mayor realismo en los efectos.
Además, son conocidas por estar presentes en las tarjetas gráficas de los ordenadores portátiles o de sobremesa, pero también están presentes en los smartphones y tabletas(tablets).
Las modernas GPU son descendientes de los chips gráficos monolíticos(circuitos integrados que están fabricados en un solo monocristal, habitualmente de silicio) de finales de la década de 1970 y 1980. Estos chips tenían soporte BitBLT(es una primitiva gráfica consistente en que dos mapas de bit son combinados en uno) limitado en la forma de sprites (es un tipo de mapa de bits dibujados en la pantalla de ordenador por hardware gráfico especializado), y usualmente no tenían soporte para dibujo de figuras. Algunos GPU podían ejecutar varias operaciones en una lista de display.
Hacia finales de la década de 1980 y principios de la de 1990, los microprocesadores de propósito general de alta velocidad fueron muy populares para implementar las GPU más avanzadas.
Muchas tarjetas gráficas para PC y estaciones de trabajo usaban procesadores digitales de señales (DSP por sus siglas en inglés) tales como la serie TMS340 de Texas Instruments, para implementar funciones de dibujo rápidas, muchas impresoras láser contenían un procesador de barrido de imágenes “PostScript” (un caso especial de GPU) corriendo en un procesador RISC como el AMD 29000.
Conforme la tecnología de proceso de semiconductores fue mejorando, eventualmente fue posible mover las funciones de dibujo y las BitBLT a la misma placa y posteriormente al mismo chip a manera de un controlador de buffer de marcos (frames), tal como VGA.
Estos aceleradores gráficos de 2D “reducidos” no eran tan flexibles como los basados en microprocesadores, pero eran mucho más fáciles de hacer y vender.
La Commodore AMIGA fue la primera computadora de producción en masa que incluía una unidad blitter y el sistema gráfico IBM 8514 fue una de las primeras tarjetas de video para PC en implementar primitivas 2D en hardware.
Diferencias con la CPU
Si bien en un computador genérico no es posible reemplazar la CPU por una GPU, hoy en día las GPU son muy potentes y pueden incluso superar la frecuencia de reloj de una CPU antigua (más de 500MHz en los ordenadores de sobremesa o portátiles).
Pero la potencia de las GPU y su dramático ritmo de desarrollo reciente se deben a dos factores diferentes. El primer factor es la alta especialización de las GPU, ya que al estar pensadas para desarrollar una sola tarea, es posible dedicar más silicio en su diseño para llevar a cabo esa tarea más eficientemente. Por ejemplo, las GPU actuales están optimizadas para cálculo con valores en coma flotante, predominantes en los gráficos 3D.
Una de las mayores diferencias con la CPU estriba en su arquitectura. A diferencia del procesador central, que tiene una arquitectura de von Neumann, la GPU se basa en el Modelo Circulante.
Este modelo facilita el procesamiento en paralelo, y la gran segmentación que posee la GPU para sus tareas.
casa Nvidia
Arquitectura de la GPU
Una GPU está altamente segmentada, lo que indica que posee gran cantidad de unidades funcionales.
Estas unidades funcionales se pueden dividir principalmente en dos: aquéllas que procesan vértices, y aquéllas que procesan píxeles(es la menor unidad homogénea en color que forma parte de una imagen digital, ya sea esta una fotografía, un fotograma de vídeo o un gráfico).
Por tanto, se establecen el vértice y el píxel como las principales unidades que maneja la GPU.
Adicionalmente, y no con menos importancia, se encuentra la memoria.
Ésta destaca por su rapidez, y va a jugar un papel relevante a la hora de almacenar los resultados intermedios de las operaciones y las texturas que se utilicen.
GPU en los smartphones
La GPU en los smartphones está especializada en mostrar los gráficos de la interfaz de usuario, efectos 3D y 2D, reproducción de vídeo en HD Ready(720p) o full HD(1080p), reproducción de gráficos avanzados 3D y 2D en videojuegos. Como introducción a las GPU en los smartphones tenemos:
-ULP GeForce fabricada por NVIDIA, con una arquitectura propietaria(ULP GeForce) y con 8 núcleos, alcanza velocidades desde 300 Mhz hasta 520 Mhz. Este GPU se incluye en los procesadores Tegra 2 de dos núcleos y Tegra 3 de cuatro núcleos.
-La serie Mali (GPU) está producida por ARM Holdings. El núcleo se desarrolla en ARM Norway que es una compañía de ARM Holdings.
Esta serie posee de 1 a 8 núcleos y hay variantes sin caché o con hasta 256 KiB, además tiene velocidades desde 240 Mhz hasta 480 Mhz. Marcas como la conocida Samsung montan estas GPUs de ARM Holdings.
-La serie Adreno de Qualcomm (anteriormente Imageon y previamente ATI Imageon), es una serie de GPUs desarrolladas por ATI para dispositivos portátiles (smartphones y PDA principalmente). Diseñadas como sistema-en-un-chip (SoC), la línea de procesadores multimedia Imageon se introdujo en 2002 para los gráficos integrados en dispositivos de mano, teléfonos móviles y tabletas.
Qualcomm es una compañía estadounidense fundada en 1985 que produce estos chipsets para la tecnología móvil:
CDMA(multiplexación o control de acceso al medio usada en UMTS, WIFI, GPS, y principalmente se emplea en comunicaciones inalámbricas (por radiofrecuencia), aunque también puede usarse en sistemas de fibra óptica o de cable) W-CDMA (3G).
-PowerVR es el departamento de hardware y software gráfico de Imagination Technologies (antes VideoLogic).
Tiene las series MBX, MVED/VXD y SGX:
las cuales son la gama actual de chips gráficos utilizado en teléfonos móviles como el Apple iPhone, Nokia, Motorola, Samsung y Sony Ericsson y otros dispositivos portátiles como reproductores de vídeo, PDA y GPS.
¿Donde se encuentra el procesador gráfico en los smartphones?
Se encuentra en los sistemas integrados SoC junto con los núcleos de procesamiento y otros subsistemas, muy cercanos todos entre sí. La GPU se localiza en el SoC, es donde se localiza también la CPU. La GPU es el “procesador de gráficos 2D/3D” que forma parte del SoC.
Esto es completamente diferente a un ordenador de sobremesa o portátil, que por lo general utiliza una solución de doble chip, un chip para la CPU y otro para la GPU generalmente en una placa aparte que se une a la placa base.
Son dos componentes críticos de un ordenador de escritorio que están en realidad físicamente bastante separados al compararlos con un sistema SoC.
Por supuesto, existe una razón de por qué los dos sistemas en un móvil están tan cerca. En primer lugar, los smartphones y las tabletas no tienen una gran cantidad de espacio interior para trabajar, por lo que tener componentes críticos empaquetados juntos permite a la placa base del dispositivo ser pequeña y, así, dejar a la batería más espacio.
En segundo lugar, el encapsulado de las dos unidades hace que se reduzca la ventilación para reducir de forma más eficiente el calor del dispositivo, ya que al estar todo en un lugar más localizado se puede ahorrar energía.
Finalmente, ahorra costes de fabricación para producir un chip en lugar de dos.
¿De qué se encarga la GPU en un smartphone?
El uso de la GPU depende de varios factores: de la estructura del SoC y también del sistema operativo utilizado en el dispositivo. En el primer caso: si el SoC no dispone de un chip dedicado para la decodificación de vídeo, la GPU puede encargarse de cumplir ese propósito y manejar vídeos de alta resolución.
En el sistema operativo las cosas son algo más complejas. En primer lugar la GPU se utiliza exclusivamente para la renderización 3D en juegos y aplicaciones. Los núcleos de procesamiento(CPU), simplemente, no están diseñados para manejar este tipo de tareas y en todos los sistemas operativos la GPU se hará cargo de ellas dejando a la CPU encargarse de otros cálculos.
La CPU ayuda en los cálculos para mostrar modelos 3D en la pantalla (en especial para juegos), pero el cálculo principal se hace en el chip de gráficos GPUs.
La mayoría de los núcleos gráficos también admiten la representación 2D:
cosas como las animaciones de la interfaz y la imagen de zoom son dos buenos ejemplos en los que se usa la GPU.
Jugar al Asphalt 6: Adrenaline en este Galaxy Note sería muy difícil sin una GPU potente.
Windows Phone 7 (como el 8) es muy pesado en cuanto animaciones, y con solo la CPU sería imposible conseguir un uso fluido y sin “tirones”. Así, la GPU juega un papel importante en la prestación de la interfaz principal y otras interfaces con animaciones pesadas (galerías de fotos o vídeos).
Hacer que Android use la GPU (si está disponible) para la interfaz de usuario y la experiencia de navegación es uno de los problemas que Android ha tenido desde que salió. Incluso en algunos de los dispositivos de gama alta, se tienen problemas con la fluidez en el interfaz gráfico de usuario.
Google respondió con la introducción de un recolector de basura mejorado en Android Gingerbread(2.3.X), pero no abordó la raíz del problema, el cual se resolvería con la apertura de la GPU para su utilización en la interfaz. Así nació el problema del lag en Android,(del inglés lag behind, rezagarse) es el retraso producido en una telecomunicación que dificulta el desarrollo normal de la misma, provocando desorientación o incomodidad en el usuario.
Esto se corrigió, por fin, a partir de la versión de Android 4.0, gracias a su soporte 2D por hardware en la interfaz, porque, entre otras cosas, los SoCs modernos incluían GPUs más potentes. Así, ese fue el momento en el que Google permitió que los dispositivos utilizaran sus GPUs para representar los elementos de la interfaz.
Todavía es posible conseguir una interfaz fluida de representación sólo con la CPU (como se ve en Android 2.3 y dispositivos como el Galaxy S II y Motorola Droid Razr), pero la utilización de la GPU hace que el dispositivo sea más eficiente.
Por contra, iOS en el iPhone o en el iPod Touch funciona muy fluido porque hace que más elementos de la interfaz utilicen la GPU. Apple tiene ventaja sobre Android en este aspecto, porque sólo tiene que trabajar con un hardware específico y por esto pueden integrarse en el sistema operativo las funcionalidades precisas para un solo GPU.
Por esta, apenas hubo problemas para conseguir la aceleración gráfica por GPU en iOS.
Qualcomm: GPUs Adreno
La unidad de procesamiento de gráficos(GPU) Adreno es el chipset gráfico que se utiliza en los SoCs Qualcomm. Las GPUs Adreno se llamaban antes Imageon y fueron fabricados por ATI hasta que Qualcomm adquirió la división de AMD y renombró dichos productos como Adreno.
La vieja serie Adreno 1xx se utilizaron en las viejos SoCs Qualcomm 7xxx, después surgió la nueva serie Adreno 2xx que se utilizan dentro de la serie Snapdragon.
En la gama actual de SoCs Snapdragon se ven tres GPUs Adreno serie 2xx: el Adreno 200 (para S1), 205 (para S2) y 220 (para S3). Un mayor número y la inclusión en una serie más reciente indica una GPU con mayor rendimiento. Qualcomm afirma que cada sucesiva GPU es el doble de rápida que la anterior, es decir, el Adreno 220 es alrededor de 4 veces más rápido que el 200.
Las GPUs Adreno se utilizan exclusivamente en los SoC Qualcomm Snapdragon.
Las GPU Adreno en la gama Snapdragon S3 soportan tanto OpenGL ES 2.0 y 1.1 junto con Direct3D 9.3. Se incluyó en el Adreno 205 hardware acelerado para SVG(HTML5 Scalable Vector Graphics) y Adobe Flash.
Estas son realmente todas las API necesarias para asegurar que los juegos móviles modernos funcionen en un smartphone que adopta una GPU Adreno, ya que, de momento, no hay casi juegos modernos que hagan uso de las nuevas API OpenGL ES 3.0 o Direct3D 11.
Es una moda de Qualcomm no dar información relativa al rendimiento de sus series Adreno, como las estadísticas o los GFLOPS(gigaFLOPS operaciones de coma flotante por segundo) estimados en estos chipsets. Esto hace que sea muy difícil comparar los chips sin tener que recurrir a un índice de referencia.
Mirando hacia el futuro, Qualcomm, ha día de hoy, ya ha decidido dar a conocer información sobre sus fichas, como por ejemplo en el Adreno 225: que aparecerá primero en sus SoC S4 con su nueva arquitectura de núcleo Krait. A diferencia de la futura serie Adreno 3xx, 225 no mejora en el soporte de la API pero sí mejora el rendimiento: Qualcomm afirma que será un 50% más rápido que el Adreno 220 y más o menos a la par con el PowerVR SGX543MP2 (que se encuentra en el SoC A5 de Apple), este es capaz de dar una tasa de 19,2 GFLOPS a 300 MHz.
Imagination Tech: GPU PowerVR
Imagination Technologies Group plc (IMG) es un fabricante con sede en Londres de chips gráficos móviles, principalmente conocido por desarrollar sus chips gráficos PowerVR y radios digitales con Pure DAB(es una división de Imagination Tech que se dedica a producir radios digitales DAB: Digital Audio Broadcasting – Radiodifusión de audio digital).
Es el segundo mayor productor de chips gráficos de teléfonos móviles smartphone. Fabrica la línea de GPU PowerVR.
Ha habido muchas series de GPU PowerVR, aunque los dispositivos actuales utilizan el PowerVR SGX 5 o serie 5XT.
Las GPU PowerVR están licenciadas para ser incluidas en otros SoC y así se encuentran en una gran variedad de dispositivos. En los SoC TI OMAP se hace uso exclusivo de las GPU PowerVR, y también los encontrará en el interior de algunos viejos chipsets Exynos de Samsung, así como en los Apple A4 y A5. A veces también se utiliza junto con los procesadores Intel x86 en los ordenadores portátiles de gama baja.
La serie PowerVR SGX 5 se compone de varios modelos de GPUs, pero sólo unos pocos son los que se utilizan regularmente. El SGX530 PowerVR se utiliza en la serie TI OMAP 3, de esta manera encuentra un hueco en una gran cantidad de dispositivos de un solo núcleo, como en el Motorola Droid (original) o en el Nokia N9. Cuando corre a 200 MHz, el SGX530 es capaz de dar 1,6 GFLOPS.
El SGX535 (utilizado en el iPhone 3GS y el iPhone 4) es similar al SGX530 y contiene soporte para DirectX 9.0c, aunque el 530 no lo tiene ambos mantienen el mismo rendimiento.
Este es un vistazo a la arquitectura de la serie PowerVR SGX 5XT
El chip más popular de la serie 5 es el PowerVR SGX540 que se utiliza tanto en el original chipset Samsung Exynos (el Hummingbird) para el Galaxy S como en el SoC TI OMAP 4. Tiene soporte para DirectX 10 y es capaz de dar un rendimiento de 3,6 GFLOPS a 200 MHz, el doble que la SGX530. A diferencia de la SGX530, el SGX540 puede ser ajustado hasta 400 MHz, y así, en teoría, la GPU puede alcanzar los 7,2 GFLOPS.
Algunas personas pueden mirar las implementaciones de la SGX540, y se pueden preguntar por qué aparece en el viejo SoC de núcleo único Hummingbird del Galaxy S original y también aparece en el TI OMAP 4460 de doble núcleo utilizado en el Nexus Galaxy.
Resulta que las velocidades de reloj, en realidad, son diferentes para ambos SoCs: en el Hummingbird va de 140 a 200 MHz (3,2 GFLOPS), el TI OMAP 4430 utilizado en el Razr Droid va a 304 MHz (~ 4,8 GFLOPS) y el TI OMAP 4460 a 384 MHz (~ 6,1 GFLOPS).
La serie más reciente 5XT no ha encontrado su camino en demasiados dispositivos, con la salvedad de las inclusiones en el chip A5 de Apple, utilizado en el iPad 2 y el iPhone 4S, y en la PlayStation Vita.
Cuando la serie 5 sólo tiene un único núcleo en la GPU, la serie 5XT soporta hasta 16 núcleos, cada uno de los cuales es el doble de rápido que el SGX540. La GPU en los 5XT llevan un nombre que incluye MPx, donde la x denota el número de núcleos: por ejemplo la SGX543MP2 utilizado en el A5 de Apple tiene dos núcleos. Así el A6 (iPhone 5) usa la SGX 543MP3 a 266 MHz con tres núcleos, introduce un núcleo más en la GPU con respecto a iPhone 4S.
Actualmente el SGX543 es el único chip que ha, realmente, a encontrado su camino en los SoCs, con la GPU SGX544 están preparados para entrar en la serie TI OMAP 5. El SGX543 ofrece 6,4 GFLOPS por núcleo a 200 MHz, lo que significa que, a 200 Mhz, la SGX543MP2 en el A5 de Apple alcanza 12,8 GFLOPS, que es una mejora considerable sobre el SGX540, gracias al aumento de Mhz. Como Apple no ha especificado qué velocidad de reloj lleva la GPU en el A5 se puede estimar que es de alrededor de 250-300 MHz, lo que significa que estamos viendo la friolera de 16 y 19 GFLOPS.
No se cree que los fabricantes monten más de dos núcleos en el SGX543, ya que cada núcleo añadido consume más energía. Solo Sony decidió que una SGX543MP4, de cuatro núcleos es el camino a seguir en la PlayStation Vita. Incluso con una velocidad de unos 200 MHz, la GPU de la PSVita es capaz de dar 25,6 GFLOPS; con 300 MHz se obtiene 38,4 GFLOPS. Al igual que Apple, Sony realmente no ha especificado la velocidad de reloj de la GPU en su consola, así que sólo se pueden hacer conjeturas en cuanto a la cantidad de potencia de la GPU de la videoconsola.
Solo por curiosidad, si suponemos un PowerVR SGX543MP16 (16 núcleos) con una máxima velocidad de reloj de 400 MHz sería capaz de dar 204,8 GFLOPS. Eso es impresionante y sin duda utilizaría una gran cantidad de energía para poder funcionar.
De momento no existe ningún dispositivo que lo monte. A lo mejor en un futuro, con la mejora del rendimiento de las baterías, se podría llegar a implementar. Imagen de la evolución de las series PowerVR a lo largo de los años y en diferentes dispositivos
ARM Mali GPU
La sección sobre la GPU Mali va a ser relativamente corta debido a que sólo se utiliza en un SoC: el Samsung Exynos 4210, que se puede encontras en el Samsung Galaxy S II, Galaxy Note y Galaxy Tab 7.7”. La serie Mali es propia de ARM, por lo que deben de ser un compañero ideal para los núcleos de procesamiento Cortex utilizados en el chipset Exynos.
A pesar de que en el papel hay varias GPU Mali, la única que realmente se ha utilizado es la de cuatro núcleos Malí-400 MP4 en el Exynos 4210. Cuando se dice que la ARM Mali-400 MP4 es “quad-core” no es realmente cuatro núcleos de procesamiento como en la PowerVR SGX543MP4, es simplemente cuatro procesadores de sombreado de píxeles. Por ello, el Mali-400 MP4 no tiene las mismas capacidades gráficas que posee el verdadero PowerVR de cuatro núcleos.
El rendimiento del Mali-400 MP4 es de 7,2 GFLOPS a 200 MHz, lo que significa que es más rápido que un solo núcleo PowerVR SGX543. La velocidad de reloj destinado para el Exynos 4210 es de 275 MHz, es decir, la GPU es capaz de dar un ratio de 9,9 GFLOPS, lo que está entre las GPU más rápidas del mundo en un smartphone Android.
En términos generales: la Mali-400 MP4 en el Galaxy S II es el doble de rápido que la SGX540 en el Razr Droid y aproximadamente 75% más rápido que el mismo GPU en el Galaxy Nexus. A su vez, el iPhone 4S con GPU PowerVR SGX543MP2 es alrededor de dos veces más rápida que la Mali-400 y la Playstation Vita es incluso más rápida que eso.
Samsung seguirá utilizando la GPU Mali en sus futuros SoC Exynos 5xxx, aunque serán unas unidades más potentes que Mali-400 MP4. Actualmente Samsung afirma que el próximo chip de la GPU Exynos será “4 veces más rápido” que la implementación en el 4210.
NVIDIA: ULP GeForce GPU
Se ha mencionado que la serie de GPU para teléfonos de NVIDIA no resultaba tan impresionante como las tarjetas gráficas para ordenadores comunes, de echo la GPU ULP GeForce de NVIDIA, que está en sus SoC Tegra es la más lenta de la primera generación de GPUs de doble núcleo, y aquí se detalla el por qué.
La GeForce ULP se utiliza en dos grandes conjuntos de chips Tegra 2: “Tegra 250 AP20H” y “Tegra 250 T20”, el primero en los smartphones y los segundos para las tabletas. La GeForce ULP utilizada aquí tiene una velocidad de 300 MHz (AP20H) o 333 MHz (T20), y sólo es capaz de ofrecer 3,2 GFLOPS a 200 MHz. Esto significa que el AP20H a 300 MHz da 4,8 GFLOPS y el T20 a 333 MHz da 5,33 GFLOPS.
Ahora, a primera vista, se daría uno cuenta de que la capacidad de GFLOPS de la Tegra 2 es el mismo que el PowerVR SGX540 con una velocidad de reloj de 300 MHz, y eso es cierto. Sin embargo, la velocidad máxima del reloj de la SGX540, vista en un dispositivo real, es de 384 MHz en el Galaxy Nexus, que es capaz de rendir a 6,1 GFLOPS. Esto es más rápido que incluso el Tegra 2 en la tableta a 333 MHz, por lo que el Tegra 2 tiene una GPU menos potente.
Se ha de tener en cuenta la velocidad de reloj de la CPU y el tamaño de la pantalla, pero si estamos hablando de las GPUs más capaces, la serie Tegra 2 no es definitivamente la más veloz.
A medida que nos adentramos en la segunda generación de procesadores multi-núcleo, NVIDIA fue el primero en atacar el mercado con su quad-core Tegra 3, como se mencionó en el apartado del procesador. Es de esperar que el Tegra 3, que incluye la GPU ULP GeForce, sea más potente que en el Tegra 2, y si bien es cierto, tal vez no la supera de una forma tan contundente como cabría esperar.
La GeForce Kal-El es capaz de dar 4,8 GFLOPS a 200 MHz, se puede ver inmediatamente que es menor que el rendimiento a 200 MHz de la Mali-400 MP4 y la PowerVR SGX543MP2.
NVIDIA no ha especificado exactamente qué velocidad de reloj de la GPU se ha introducido en el chip Tegra 3, solo ha dicho que es mayor que en el Tegra 2. Si estimamos que funciona a 400 MHz, sigue siendo sólo capaz de dar 9,6 GFLOPS, que está cerca de la GPU Mali-400 MP4.
Comparativa de GPUs en smartphones.
Sabiendo ya las diferentes gamas de GPUs móviles disponibles en el mercado, es el momento de ver cuál es la más rápida. Para ello está la siguiente tabla que muestra en GFLOPS cual es más potente.
Esto simplemente indica el rendimiento potencial de cada GPU y no refleja el rendimiento real, porque las GPU se colocan en una amplia gama de sistemas en los que los factores externos influyen: aumento de la velocidad de reloj del procesador, tipos de RAM con sus velocidades y resoluciones de pantalla, pueden afectar al rendimiento real del sistema gráfico de un smartphone.
0 comentarios: