ARM es mundialmente reconocido por sus procesadores Cortex, pero la compañía ha ampliado su catálogo para incluir una variedad de bloques IP licenciables que abarcan desde interconexiones y unidades de gestión de memoria (IOMMUs) hasta unidades de procesamiento gráfico (GPUs). En particular, las GPUs de ARM, bajo la marca Mali, han crecido significativamente en complejidad y capacidad, representando una respuesta ágil a los crecientes requerimientos tanto en gráficos como en cómputo paralelo de dispositivos móviles y embebidos. La arquitectura Bifrost, introducida alrededor de 2016 como la segunda generación unificada de shaders para los GPUs Mali, marcó un antes y un después en el diseño de estas unidades gráficas. A diferencia de su predecesor Midgard, que adoptó un modelo VLIW4 con limitaciones en cuanto a la paralelización efectiva de instrucciones, Bifrost cambió a un modelo de ejecución escalar y de emisión dual. En términos prácticos, mientras que Midgard intentaba llenar cuatro vías en paralelo con vectores amplios, Bifrost aprovecha múltiples hilos API para mantener ocupadas las unidades de ejecución, facilitando un rendimiento más consistente y una mayor simplicidad en la compilación.
Esta transición recuerda a movimientos similares en la industria, como el paso de AMD de Terascale a la arquitectura GCN. En cuanto a la organización interna, Bifrost mantiene la estructura básica de múltiples Execution Engines (EEs) agrupados en Shader Cores (SCs). Estos núcleos gráficos funcionan como una unidad cohesiva en la que diversos componentes, desde pipelines hasta cachés y unidades de textura y almacenamiento, trabajan en conjunto para garantizar un procesamiento eficiente. La flexibilidad es una característica clave en el diseño de Bifrost, permitiendo a los fabricantes ajustarlo en términos de número de Shader Cores, cantidad de EEs, tamaños de caché y capacidad de los componentes como los ROPs (Render Output Units) y TMUs (Texture Mapping Units). Esta modularidad es crucial en un contexto de restricciones estrictas de energía y espacio en dispositivos móviles.
El Mali-G52 implementado en el SoC Amlogic S922X es un claro ejemplo de esta flexibilidad. Consiste en dos Shader Cores, cada uno con tres Execution Engines que ejecutan instrucciones a 800 MHz. Aunque no es comparable en potencia absoluta con GPUs dedicadas de escritorio, su diseño está optimizado para un bajo consumo, adecuado para teléfonos, tablets y dispositivos embebidos. En comparación, la GPU Adreno 615 de Qualcomm, integrada en el Snapdragon 670, presenta un diseño que escala con unidades de sombreado más amplias, pero a una frecuencia mucho más baja, alrededor de 430 MHz. Desde el punto de vista del software, Bifrost soporta un conjunto amplio de APIs modernas como OpenGL ES 3.
0, Vulkan y OpenCL 1.1. Su ISA basada en cláusulas permite agrupar instrucciones que se ejecutan atómicamente, simplificando la gestión de dependencias y latencias. Además, el manejo escalonado entre acceso a registros, unidades de multiplicación-acumulación (FMA) y suma (FADD) proporciona un equilibrio adecuado entre performance y flexibilidad. Los Execution Engines mantienen hasta 16 warps (conjuntos de hilos API) activos, manteniendo ocultas las latencias de memoria mediante conmutaciones rápidas y eficientes.
Un aspecto particularmente notable de Bifrost es la evolución en el manejo de operaciones especiales y de diferentes tipos de datos. La arquitectura está preparada para manejar tipos de datos de 32, 16 y 8 bits, lo que es esencial frente al auge del machine learning y las aplicaciones que demandan cálculos en baja precisión para ganar eficiencia energética. Arm optó por no implementar unidades dedicadas para multiplicaciones matriciales, como hizo Nvidia con Volta, sino que apuesta por flexibles unidades vectoriales capaces de escalar accordingly sin perder versatilidad. En términos de ejecución de operaciones, Bifrost supera a la Adreno 615 en ciertas tareas como las operaciones de punto flotante fusionadas (FMA), que ejecuta directamente y con alta eficiencia, mientras que el motor de Qualcomm carece de un camino rápido para FMA real y opta por descomponerlo, lo que impacta negativamente su rendimiento en algunas cargas de trabajo. Las operaciones enteras también disfrutan de una distribución equilibrada en los pipelines de Bifrost, otorgándole ventajas sobre la competencia en multiplicaciones enteras, mientras que Adreno goza de cierta superioridad en sumas enteras.
Respecto a la memoria, la arquitectura Bifrost posee subsistemas diferenciados para texturas y para operaciones de carga/almacenamiento, cada uno con sus propios cachés L1. El caché de textura suele ser de menor capacidad y algo más latente, mientras que la caché de carga/almacenamiento se aproxima al doble de tamaño. Comparado con la competencia, el Mali-G52 tiene un sistema equilibrado, aunque con un ancho de banda limitado que restringe la puntuación máxima en aplicaciones intensivas en acceso a memoria, una constumbre en GPUs móviles donde la economía energética es fundamental. Un aspecto muy revelador es el tratamiento de la memoria local o compartida. Mientras que otros fabricantes suelen implementar memoria compartida dedicada y rápida (como la Shared Memory de Nvidia o Local Data Share de AMD), el Mali-G52 carece de esta capa on-chip, usando la memoria del sistema y su caché de carga/almacenamiento para simularla.
Esto conduce a latencias más altas y limita la concurrencia real entre grupos de trabajo que dependen de esta característica. En la jerarquía de caché, el Mali-G52 cuenta con un caché L2 relativamente grande para su segmento, con 128 KB compartidos entre los Shader Cores. Este nivel contribuye a mejorar la latencia y eficiencia en el tráfico de datos con la memoria principal, ayudando en tareas de cómputo y gráficos. Sin embargo, el ancho de banda disponible y la latencia general también dependen mucho de la implementación del SoC y del controlador de memoria, aspectos que quedan en manos del fabricante del chip, debido al modelo de negocio basado en licencias de ARM. El diseño modular y escalable de Bifrost se evidencia también en el sistema de sombreado y rasterizado.
Ambos Mali y Adreno recurren a una arquitectura de renderizado por teselas (tiled rendering), que reduce el consumo de ancho de banda al dividir la imagen en pequeños bloques procesados de forma secuencial. Mali utiliza teselas de 16×16 píxeles, con capacidades mejoradas para eliminar triángulos insignificantes y optimizaciones para evitar escribir datos idénticos en memoria mediante técnicas como la “eliminación de transacciones”. Estas innovaciones son importantes para mantener bajo el consumo energético y acelerar el procesamiento en dispositivos con capacidades limitadas. En términos de rendimiento computacional, la GPU Mali-G52 destaca en tareas que aprovechan la capacidad de cómputo homogéneo, especialmente en punto flotante donde el soporte completo para FMA se traduce en mejor desempeño en aplicaciones como simulaciones físicas o aprendizaje automático. A diferencia de la Adreno 615, que muestra limitaciones en sus caminos para FMA, el Mali-G52 mantiene un perfil más equilibrado y consistente, optimizando además el uso de formatos de media precisión (FP16).
El control de poder también juega un papel fundamental en la arquitectura. Mali-G52 está dividido en cuatro dominios de energía, permitiendo que partes de la GPU estén apagadas o a menor frecuencia cuando la carga de trabajo es baja. A nivel de diseño, los Shader Cores se controlan individualmente, lo que permite ahorrar energía en tareas poco demandantes sin sacrificar capacidad total cuando se requiere rendimiento elevado. La estrategia de ARM con Mali y Bifrost es clara: se orienta a ofrecer un bloque IP extremadamente flexible y parametrizable que se adapte a una amplia gama de escenarios, desde pequeños dispositivos embebidos hasta laptops de consumo bajo. Esta aproximación contrasta con modelos más cerrados y verticales como el de Qualcomm con Adreno, que integra la GPU con un control total sobre el diseño del chip y otras aceleradoras, permitiéndole especializarse más según el mercado objetivo.
En conclusión, la arquitectura Bifrost y la GPU Mali-G52 representan una propuesta sólida dentro del espacio de GPUs de bajo consumo, donde ARM ha sabido equilibrar rendimiento, eficiencia y versatilidad. La escalabilidad de la arquitectura, la coherencia en soporte de cómputo general, así como la implementación de funcionalidades clave como la ejecución basada en cláusulas, anexos similares a ideas de Terascale y la gestión flexible de memoria, dan a Mali un lugar destacado en el ecosistema de GPUs móviles. A medida que los requerimientos gráficos y computacionales en teléfonos, tablets y dispositivos IoT continúan creciendo, la evolución de la arquitectura Mali será clave para mantener la competitividad y ofrecer experiencias multitarea fluidas y eficientes en energía. La trayectoria de ARM en GPUs, con Bifrost como una piedra angular, muestra cómo la integración de ideas clásicas y nuevas innovaciones pueden converger para crear una solución adaptada a las necesidades y limitaciones del moderno ecosistema móvil, mientras mantiene la puerta abierta para futuras mejoras y ampliaciones tecnológicas.