Uno de los temas más recurrentes en los últimos años ha sido el aumento del consumo energético de los diferentes chips. Al mismo tiempo hemos visto como en muchos comentarios la gente suele decir que es un sinsentido el aumento de la energía. ¿Y si el hecho de que los nuevos chips suban la factura de la luz fuese algo insalvable y una consecuencia del avance de los procesadores? Es por ello que hemos decidido explicaros el fenómeno.
No hay ninguna duda que el coste de la luz subirá por la avaricia de los políticos y sus medidas, las cuales son fáciles de decir, pero las hacen con el dinero de todos nosotros. Sin embargo, nosotros no hablamos de esos temas y aunque sabemos que la factura de la luz ha subido de forma artificial, lo que nos interesa explicaros por qué las tarjetas gráficas cada vez consumen más al igual que los procesadores, memorias RAM. Es decir, todos los componentes dentro de nuestro PC.
Que los nuevos chips suban la factura es inevitable
Si miramos cualquier arquitectura de procesador, ya sea general o especializado, nos daremos cuenta de que más de la mitad de la circuitería, por no decir más de dos tercios, no existe para procesar datos, sino para comunicarlos entre las diferentes partes. Y es que no nos olvidemos que los chips pueden tener una o varias funciones al mismo tiempo a día de hoy, pero que se pueden resumir en tres funciones principales:
- Procesar datos.
- Transmitir datos.
- Almacenar datos.
Pues bien, aunque a muchos os parezca contraproducente, el hecho de procesar información tiene un coste tanto en la cantidad de transistores dentro del procesador como en coste energético realmente nimio. Y una buena parte del diseño de los procesadores es para traer la información a las unidades de ejecución para que estas la procesen. El problema es que por las leyes de la física es más caro el transportar bits que cualquier otra cosa a día de hoy y una de las consecuencias es chips suban la factura de la luz, al consumir más obviamente.
A esto se le llama el muro de Von Neumann, ya que es inherente a todas las arquitecturas, estemos hablando de un servidor, un teléfono móvil o una consola de videojuegos y se ha convertido en el mayor dolor de cabeza para los ingenieros en la actualidad. Y más con la necesidad de reducir la huella de carbono.
Explicando el problema cuantitativamente
Normalmente, solemos dar el consumo energético de los chips en vatios (W), los cuales son Joules por segundo. Debido a que el ancho de banda son Bytes o Bits por segundo, no confundir ambos términos, una forma de medir una simple transferencia de datos es ver cuántos Joules consume está. Pues bien, el siguiente gráfico se lo debemos a Bill Dally, científico jefe de NVIDIA, y uno de los mayores expertos en arquitecturas de computación del mundo:
Pues bien, hemos de partir del hecho de que un nJ o nanoJoules son 1000 pJ o picoJoules. Es decir, si a la hora de procesar una operación aritmética de coma flotante en doble precisión o de 64 bits, dependiendo de donde se encuentren los datos, el consumo para realizar una misma operación variará:
- Si el dato se encuentra en los registros, entonces solo costará 20 pJ o 0.02 nJ.
- Si tenemos que acceder a la caché para encontrarlos la cosa sube a los 50 pJ o 0.05 nJ
- En cambio, si el dato se encuentra en la RAM, entonces el consumo sube a los 16 nJ o 16000 pJ.
Es decir, acceder a la RAM tiene un coste 1000 veces superior en energía para realizar una misma operación que la información se encuentre en el procesador. Si a esto le sumamos la intercomunicación interna entre los componentes de un procesador y la externa, acabamos teniendo chips capaces de procesar grandes volúmenes de datos, pero al mismo tiempo que acaban necesitando una gran cantidad de energía para funcionar.
¿Qué soluciones veremos a futuro?
Por el momento no son más que soluciones de laboratorio, pero están probadas y podrían cambiar la forma en la que entendemos los PC. Principalmente, tenemos dos soluciones distintas al problema.
Near Memory Processing
La primera de ellas es el procesamiento cercano a la memoria, que consiste en acercar memoria a los procesadores. La idea no es otra que poner de forma muy cercana memoria al procesador, por desgracia no podemos colocar las decenas de gigabytes de RAM que veremos a corto plazo en los PC, pero si un nivel de caché adicional de gran tamaño que aumente enormemente la capacidad de poder encontrar los datos en ella y reducir el consumo.
Curiosamente, la estrategia de aumentar de tamaño las cachés es la que ha llevado a cabo NVIDIA con su arquitectura Lovelace, aumentando la L2 de una generación a otra 16 veces. Sin embargo, esto no es suficiente. Lo que nos lleva a la conclusión que será necesario un nuevo nivel de memoria. Más cercano al procesador y, por tanto, con menos consumo energético. Es decir, en unos años hablaremos de RAM rápida y RAM lenta en nuestro PC. Esta última posiblemente utilizando la interfaz CXL.
Processing in Memory
Lo segundo es lo que llamamos PIM, no son procesadores en sí mismo, sino chips de memoria con capacidades de procesamiento internas. Es decir, no dejan de ser memorias, pero se pueden correr ciertos algoritmos concretos en ellas. Por ejemplo, imaginad que tenemos que realizar varias peticiones a una base de datos que se encuentra en la RAM para buscar la dirección de correo de un cliente. En el mecanismo convencional necesitaríamos varios accesos a la memoria externa de bajo consumo. De esta manera, en cambio, la propia RAM busca el dato en sí misma, con muy poco consumo al no tener que acceder externamente y solo tiene que hacer un envío de datos al procesador.
De esta manera conseguimos reducir enormemente la cantidad de transferencias entre la RAM y el procesador y con ello recortar el consumo energético. La contrapartida es que las aplicaciones deberán estar pensadas para este paradigma. Aunque es necesario con tal de reducir el consumo energético y evitar que los nuevos chips suban la factura de la luz aún más.