Aceleradores para la transmisión de datos, ¿el futuro para mejorar el rendimiento?
Los aceleradores para mover datos son un tipo de unidad que vamos a ver futuros diseños tanto de CPUs como de GPUs, las cuales van a permitir mejorar el rendimiento a base de optimizar la forma en la que se gestiona la logística de los datos en un sistema. ¿Qué ventajas y cambios suponen el añadido de este tipo de unidades? Os lo explicamos.
En todo ordenador se hacen principalmente dos cosas: mover datos y procesarlos. Hasta ahora no se suele tener en cuenta la importancia a la hora de gestionar el movimiento de la información de una punta a la otra del hardware y las mejoras de rendimiento se han basado en hacer procesadores más potentes. Dicha tendencia está empezando a cambiar y por tanto la logística de la información va a cobrar más importancia en el futuro.
¿Aceleradores para mover datos?
Normalmente cuando una CPU o una GPU hace una petición a memoria todo el mecanismo encargado de captar los datos suele ser pasivo y funcionar siempre de la misma manera. Lo cual es suficientemente bueno si estamos hablando de volúmenes de información lo suficientemente bajos.
El problema viene en la forma en la que funcionan las peticiones a memoria y es que cada petición a memoria retrasada es una que acaba retrasando al resto y se acaba creando una latencia conjunta que es cada vez mayor, afectando no solo al rendimiento del procesador sino también de la propia memoria. Es aquí donde entran una serie de unidades venidas del mundo de los superordenadores, los llamados SmartNIC basados en comunicar sus anchas redes, pero esta vez implementados como un Northbridge.
Con ellos se pueden añadir algoritmos para la logística de datos, la optimización ya no vendrá solo del código principal, sino también con la forma en la que se gestione el acceso a los datos en cada momento. Esto significará la entrada de una nueva unidad de procesamiento.
La interconexión tendrá que cambiar
La clave para la implementación de los SmartNIC para controlar los Northbridges será que estos dejen de tener la arquitectura de un SoC convencional para implementar la de un NoC, en la que cada elemento del procesador se comunica con el SmartNIC como si fuese una red y este hace de enrutador central para los diferentes componentes.
La evolución a los NoC o Network on a Chip es algo a lo que todas las CPUs, GPUs y SoCs tanto de Intel, AMD y NVIDIA van a sufrir en el futuro. No solo por las ventajas que se obtienen en rendimiento pudiendo gestionar la logística de los datos, sino porque es la mejor manera de implementar sistemas MCM basados en chiplets.
En el caso de AMD e Intel tenemos la capacidad de implementar sus SmartNIC en forma de eFPGA con las tecnologías de Xilinx y Altera respectivamente. En el caso de NVIDIA tenemos las DPU de Mellanox, de las que sabemos que van a implementar en futuros diseños de sus GPU.
No afectará al código ya existente
La logística de los datos hasta ahora se realiza de manera automática y resulta contraproducente para los desarrolladores tener que pensar en cómo se va a llevar esta. En realidad la implementación de los aceleradores para mover datos no va a cambiar la compatibilidad con el código ya existente y solo actuarán de manera activa en la logística de datos si se les hace una petición concreta para ello.
Por lo que la compatibilidad no se verá afectada en absoluto y solo en determinados casos concretos se hará uso de los aceleradores para mover datos. Para la gente de a pie un cambio de este tipo no se puede cuantificar debido a que se suele hablar en términos de potencia y en este caso hablamos de optimizar los accesos a memoria de los programas para sacar el máximo beneficio de la memoria.