La arquitectura big.LITTLE es común en CPU pero, ¿la veremos en GPU?

La arquitectura big.LITTLE es común en CPU pero, ¿la veremos en GPU?

Rodrigo Alonso

Muchas veces estamos escuchando en los últimos tiempos, máxime por el uso de arquitectura ARM por parte de Apple y por Intel Foveros, sobre la arquitectura big.LITTLE en procesadores, donde coexisten núcleos «pequeños» de bajo consumo encargadas de las tareas más livianas y núcleos «grandes» para desatar toda la potencia. Esta arquitectura por el momento solo la hemos visto en CPUs pero, ¿sería posible implementarla también en GPU para tarjetas gráficas?

El concepto de esta arquitectura es muy sencillo y a la vez eficaz: tenemos un die con dos tipos de núcleos, unos pequeños que siempre están activos y que se encargan de las tareas livianas como puede ser navegar por Internet o escribir en un Word, y otros núcleos más grandes y potentes, que normalmente están desactivados y a la espera de que se ejecute una tarea que requiera mayor potencia para activarse y hacerse cargo de todo. Esta arquitectura big.LITTLE se utiliza en procesadores, donde el recuento de núcleos es bastante escaso, especialmente si lo comparamos con una GPU, donde la cantidad de núcleos se cuenta por miles.

NVIDIA Optimus ya fue una especie de big.LITTLE en GPU

Muchos de vosotros recordaréis los tiempos en los que casi todos los portátiles con GPU dedicada contaban con tecnología NVIDIA Optimus. Esta tecnología hacía que cuando estábamos en el escritorio o haciendo tareas que no fueran 3D, se utilizaba la tarjeta gráfica integrada en el procesador para ahorrar energía, pero cuando ejecutábamos algún juego o tarea 3D entonces se utilizaba la gráfica dedicada para poder tener toda la potencia disponible.

NVIDIA Optimus

Esta inteligente manera de aprovechar que el portátil tenía dos GPUs es, en esencia, una especie de big.LITTLE pero en modo burdo (en lugar de ser toda una arquitectura), pero la idea es básicamente la misma: cuando no se necesita la GPU «grande» está desactivada y a la espera, con la iGPU haciendo todo el trabajo mientras pueda y ahorrando energía y reduciendo el calor generado. Cuando hace falta, la GPU «grande» entra en funcionamiento y entrega el máximo rendimiento.

Entonces, ¿es algo que se puede implementar?

Desde luego que la idea es muy buena, pero o bien integran dos GPUs en un mismo PCB para esta misma funcionalidad de la que os hemos hablado antes o la cosa se complica bastante, y es que no es lo mismo trabajar con los 4-16 núcleos que puede tener una CPU que con los varios miles de una GPU (para poner esto en contexto, una Radeon RX 6800 XT tiene 3.840 Shader Processors (núcleos), mientras que una RTX 3090 tiene la friolera de 10.496 núcleos CUDA).

Para una implementación total de esta arquitectura sería necesario redefinir la forma de trabajar de la GPU, puesto que actualmente ya tienen dos tipos de ALUs: una sirve para instrucciones simples y cuyo consumo es muy bajo, mientras que otras (las SFUs) se encargan de realizar las operaciones más complejas como raíces cuadradas, logaritmos, potencias y operaciones trigonométricas. No son núcleos big.LITTLE, pero de hecho ya se llaman diferente (ALUs FP32) precisamente por este motivo.

Consumo Energético-ALU

Así que ya lo veis, en realidad tanto antaño con Optimus como en la actualidad ya se implementa algo parecido a big.LITTLe en GPU, lo que pasa es que obviamente es diferente, funciona diferente y no se llama así. No obstante, dado que en los últimos tiempos todo parece estar enfocado a la mayor eficiencia en cuanto al consumo es algo que no podemos descartar, y desde luego tanto NVIDIA como AMD tienen potencial para poder llevarlo a cabo. Sería, desde luego, una situación ideal para ahorrar energía y generar menos calor, ¿verdad?

¡Sé el primero en comentar!