¿Qué es una DPU?

¿…Y cuál es la diferencia entre una DPU, una CPU y una GPU?
por Kevin Deierling

¿Qué es una DPU?

Las DPU, o unidades de procesamiento de datos, son una nueva clase de procesador programable especializado en mover datos en data centers y pasarán a ser, junto con las CPU y las GPU, uno de los tres pilares de la computación.

Probablemente ya conozcas la unidad central de procesamiento. Durante muchos años, las CPU, que son flexibles y cuentan con capacidad de respuesta, fueron el único elemento programable en la mayoría de las computadoras.

En los últimos tiempos, la GPU, o unidad de procesamiento de gráficos, tomó un rol central. Aunque originalmente se usaban para generar gráficos detallados en tiempo real, sus capacidades de procesamiento paralelo las hacen ideales para realizar tareas de computación acelerada de todo tipo. Gracias a estas capacidades, las GPU son esenciales para las aplicaciones de inteligencia artificial, deep learning y análisis de big data.

Sin embargo, durante la última década, la computación trascendió los límites de las PC y los servidores, lo que dio lugar a nuevos y extensos data centers de hiperescala potenciados por CPU y GPU.

Estos data centers están equipados con una nueva y poderosa categoría de procesadores. La DPU se convirtió en la tercera pieza del modelo de computación acelerada basado en data centers.

“Esto será uno de los tres pilares principales de la computación en el futuro”, dijo el CEO de NVIDIA, Jensen Huang, durante una charla a principios de este mes.

“La CPU sirve para computación de propósito general, la GPU sirve para computación acelerada y la DPU, que mueve los datos en el data center, sirve para el procesamiento de datos”.

Es un sistema en chip que combina:
Una CPU multinúcleo programable por software de alto rendimiento conforme al estándar para la industria
Una interfaz de red de alto rendimiento
Motores de aceleración flexibles y programables

CPU vs. GPU vs. DPU: ¿Qué Diferencia a una DPU?

Una DPU es una nueva clase de procesador programable que combina tres elementos clave. Una DPU es un sistema en chip, o SoC, que combina:

  1. Una CPU multinúcleo programable por software de alto rendimiento conforme al estándar para la industria, generalmente basada en la arquitectura Arm de extenso uso e integrada de forma óptima con los otros componentes del SoC.
  2. Una interfaz de red de alto rendimiento capaz de analizar, procesar y transferir datos a GPU y a CPU de manera eficiente a la velocidad de la línea, o a la velocidad del resto de la red.
  3. Un amplio conjunto de motores de aceleración flexibles y programables que descargan y mejoran el rendimiento de las aplicaciones para inteligencia artificial y machine learning, seguridad, telecomunicaciones y almacenamiento, entre otros.

Todas estas capacidades de la DPU son fundamentales para impulsar la plataforma física de computación nativa en cloud y aislada que definirá la próxima generación de computadoras en cloud.

DPU incorporadas en SmartNIC

La DPU se puede utilizar como un procesador integrado independiente. Pero por lo general se incorpora a un SmartNIC, que es un controlador de interfaz de red utilizado como componente crítico en servidores de próxima generación.

Otros dispositivos que supuestamente son DPU carecen de varios de los elementos vitales de estas tres capacidades críticas.

DPUs, or data processing units, can be used as a stand-alone embedded processor, but they’re more often incorporated into a SmartNIC, a network interface controller that’s used as a key component in a next generation server.
Las DPU se pueden utilizar como procesador integrados independientes, pero por lo general se incorporan a un SmartNIC, que es un controlador de interfaz de red utilizado como componente crítico en servidores de próxima generación.

Por ejemplo, algunos proveedores usan procesadores propietarios que no se benefician de la amplia infraestructura de aplicaciones y desarrollo del extenso entorno de CPU Arm.

Otros afirman que cuentan con DPU, pero cometen el error de enfocarse exclusivamente en la CPU incorporada para procesar rutas de datos.

Enfoque en el Procesamiento de Datos

Este método no es competitivo y no brinda escalabilidad, ya que no tiene caso tratar de superar las cualidades de la CPU x86 con un enfoque basado únicamente en el rendimiento en bruto. Si se puede superar a una CPU x86 con un procesamiento de paquetes de 100 Gigabit/s, ¿por qué habría de tener mejor rendimiento una CPU incorporada?

Más bien, la interfaz de red debe ser lo suficientemente potente y flexible para gestionar el procesamiento de rutas de datos de toda la red. La CPU incorporada debería usarse para iniciar la ruta de control y procesamiento de excepciones, y nada más.

Como mínimo, hay 10 capacidades que el motor de aceleración de rutas de datos de la red necesita para poder brindar:

  1. Análisis, emparejamiento y manipulación de paquetes de datos para implementar un switch virtual abierto (OVS)
  2. Aceleración de transporte de datos RDMA para Zero Touch RoCE
  3. Aceleradores GPUDirect para ignorar la CPU y alimentar las GPU directamente con datos de la red (tanto del almacenamiento como de otras GPU)
  4. Aceleración TCP, lo que incluye RSS, LRO, checksum, etc.
  5. Virtualización de red para superposiciones VXLAN y Geneve, y descargas de VTEP
  6. Acelerador de “ritmo de paquetes” del conformado de tráfico para proporcionar transmisión multimedia, redes de distribución de contenido y el nuevo video sobre IP en 4K/8K (RiverMax para ST 2110)
  7. Aceleradores de sincronización de precisión para telecomunicaciones en cloud RAN, como 5T para capacidades 5G
  8. Aceleración de cifrado para IPSEC y TLS realizada en línea, para que todas las demás aceleraciones se mantengan operativas
  9. Soporte de virtualización para SR-IOV, VirtIO y paravirtualización
  10. Aislamiento seguro: raíz de confianza, arranque seguro, actualizaciones de firmware seguras y contenedores autenticados y gestión del ciclo de vida de las aplicaciones

Estas son solo 10 de las capacidades de aceleración y de hardware que son críticas para poder responder con certeza a la pregunta: “¿Qué es una DPU?”

¿Qué es una DPU? Esto es una DPU:

What's a DPU? This is a DPU, also known as a Data Processing Unit.

Muchas de las supuestas DPU se centran en ofrecer solo una o dos de estas funciones.

Las peores intentan descargar la ruta de datos en procesadores propietarios.

Si bien sirve para crear prototipos, no es pragmático debido a la escala, el alcance y la amplitud de los data centers.

Recursos Adicionales Relacionados con DPU