Flash en la Inteligencia Artificial
Axel Störmann, vicepresidente de marketing e ingeniería de SSD de Kioxia Europe GmbH
09/01/2024En la actualidad existen el aprendizaje automático (ML) y el aprendizaje profundo (DL); ramas de la IA que se centran en métodos de análisis estadístico y sistemas de aprendizaje autónomo, respectivamente. El sector de semiconductores ha respondido, desarrollando procesadores sintonizados para entregar los petaflops del rendimiento de cálculo de los que dependen estos algoritmos. Sin embargo, existen preguntas sobre la elección óptima de la memoria, con requisitos que varían entre el almacenamiento de datos de entrenamiento, los datos de entrada recopilados de los usuarios y sensores durante el funcionamiento, además de los resultados intermedios calculados durante el entrenamiento y el funcionamiento.
Desafíos del procesamiento de datos
Por supuesto, tal rendimiento de procesamiento conlleva un precio, y, en nuestro mundo de acceso democratizado a la tecnología, son los proveedores de servicios en la nube los que ofrecen acceso compartido a tal potencial de procesamiento de IA. Sin embargo, el hardware de IA no es el mismo que el equipo necesario para los servidores que entregan sitios web, manejan bases de datos y dirigen el tráfico de IoT donde las cargas de trabajo y las demandas de uso están establecidas y son bien comprendidas. Dependiendo de con quién hablemos, algunos le dirán que un servidor para entrenamiento de la IA requiere el doble de almacenamiento SSD y hasta seis veces más DRAM que un servidor en la nube estándar. Dado que se espera que los servidores de hardware con capacidad de IA representen casi la mitad de todos los servidores para finales de la década, se trata de un crecimiento considerable en la demanda de memoria.
Aquí, el desafío es la dinámica de la memoria DRAM, tanto como producto como mercado. La escalabilidad ha alcanzado un límite, por lo que no podremos aumentar la cantidad de bits por área del chip en un futuro cercano. El apilamiento de chips es posible, pero implica un mayor coste proveniente, entre otras cosas, de los desafíos de rendimiento. El objetivo final es la escalabilidad mediante chips 3D, algo que ha transformado la industria de la memoria flash. Sin embargo, incluso si las tecnologías de las que hablamos hoy llegan a dar el fruto esperado esta misma década, aún habrá que esperar un tiempo antes de que demuestren funcionar y estén establecidas. La otra cuestión es el mercado. Los precios suben y bajan a medida que la demanda y la producción fluctúan, por lo que la DRAM parece la solución perfecta un trimestre, pero es el problema que nos ralentiza en el siguiente.
IA: Memoria diferente para tareas diferentes
Antes de poderse desplegar un nuevo algoritmo de IA se deben seguir múltiples pasos. Todo comienza con los datos necesarios para entrenar a la IA. Los conjuntos de datos pueden ser colecciones de vídeos tomados de vehículos que circulan por las ciudades, muestras de audio de conversaciones humanas o imágenes de exploraciones médicas. Esta información se ingiere de varias fuentes al comienzo del canal de datos de la IA, lo que requiere una memoria de escritura única de alto rendimiento (Figura 1).
Debido a la naturaleza dispar de los datos, el siguiente paso en el canal es la limpieza y la transformación. Los datos en bruto se ordenan y normalizan para que coincidan con las necesidades del marco de la IA. Las demandas de memoria en este paso varían, dependiendo de los datos en uso, pero la velocidad sigue siendo de suma importancia. Debido a la naturaleza interactiva del proceso, la fracción de lectura y escritura puede estar entre 50:50 y 80:20.
Después llega el proceso de entrenamiento. Los datos preparados se entregan repetidamente desde un soporte de almacenamiento al hardware, un procesador tipo unidad de procesamiento gráfico (GPU) con memoria local de alta velocidad. Con el tiempo, el algoritmo mejora en la tarea para la que está diseñado, como por ejemplo reconocer tumores en imágenes médicas. En esta etapa, un almacenamiento de sólo lectura de alta velocidad entrega datos a una memoria de mayor velocidad durante un periodo de aprendizaje. Normalmente, se selecciona la DRAM simplemente porque ofrece la velocidad necesaria y la arquitectura computacional lo soporta. Sin embargo, la mayor parte de la tarea de las DRAM en esta etapa es de lectura intensiva.
La etapa final es el despliegue (figura 2), y las demandas de memoria en este punto varían considerablemente. Es posible que los usuarios inicien sesión en un servidor de IA generadora para crear imágenes o usen una cámara inteligente en un dron con estrictas exigencias sobre costes, consumo de energía y peso. Independientemente del objetivo, debe haber suficiente memoria principalmente de sólo lectura para almacenar el modelo de IA necesario para ejecutar esta funcionalidad aprendida, junto con algo de memoria de lectura-escritura para gestionar los resultados de cálculo intermedios y finales.
La diferencia entre DRAM y SSD
En resumen, DRAM ofrece acceso de alta velocidad a datos de lectura y escritura lo cual, en términos generales, es fundamental para acelerar muchos aspectos del desarrollo y despliegue de algoritmos de la IA. Sin embargo, sigue siendo caro por bit, consume mucha energía y su uso resulta excesivo en varios pasos de los procedimientos. Las unidades SSD, en cambio, podrían ser una opción más viable, especialmente en partes del desarrollo donde la transferencia de datos es de lectura intensiva y requiere diez veces menos potencia. Las unidades SSD NVMe M.2 y PCIe 4.0 de Kioxia ofrecen hasta 7 GB/s de rendimiento de lectura secuencial que coinciden con anchos de banda DDR5-5600 para una CPU de 10 núcleos(1). Sin embargo, la latencia del almacenamiento en disco basado en flash (alrededor de 100 μs) es 10 000 veces más lenta, por lo que se pierde mucho tiempo esperando a que lleguen los datos (Figura 3).
Figura 3: Aunque una memoria no volátil basada en flash podría reemplazar la DRAM en algunos pasos, las SSDs de tipo flash clásico no se pueden usar debido a la latencia de estos sistemas. [Kioxia podría ajustar este tipo de diagrama a sus necesidades/mensaje - extraído de aquí: https://www.computerweekly.com/es/definition/Storage-Class-Memory-SCM].
Sin embargo, según algunos investigadores, una solución de memoria basada en flash podría, en algunos casos, reducir las diferencias entre las DRAM de baja latencia y las SSD de alto ancho de banda y de menor potencia.
No es extraño que un conjunto de datos de entrenamiento ocupe unos 10 TB, por lo que se necesitan muchas docenas de servidores con más de 100 GB de DRAM para implementar este paso del entrenamiento. Sin embargo, el conjunto de datos debe poder leerse desde el medio de almacenamiento. Unos investigadores del MIT descubrieron que estos accesos al disco ralentizaban el sistema a velocidades comparables a las del uso de memoria flash. Posteriormente, desarrollaron un enfoque que combinaba servidores con una red de FPGA, cada uno vinculado a 1 TB de memoria flash. La implementación ofreció el mismo rendimiento que un enfoque basado en DRAM al tiempo que redujo el número de servidores a diez para un conjunto de datos del mismo tamaño, lo que permitió una reducción considerable del coste.
Una nueva capa de memoria - SCM
Este estudio fortalece las voces de quienes promueven una nueva capa en la jerarquía de la memoria. La memoria de clase de almacenamiento (SCM) se ha propuesto para reducir las diferencias entre la DRAM y el almacenamiento basado en flash y así reducir las presiones en materia de gastos sin afectar el rendimiento. La SCM, que se centra en aplicaciones como la IA que acceden continuamente a conjuntos de datos gigantes, se define como un tipo de memoria total o parcialmente no volátil que ofrece latencias de lectura menores que las SSD a un precio inferior a la DRAM.
Kioxia ha desarrollado XL-FLASH con el fin de abordar esta capa de la jerarquía de memoria (Figura 4). Gracias a una arquitectura de 16 planos que acorta las vías de datos en el chip, se logran latencias de lectura de menos de 5 μs, diez veces más rápidas que el flash convencional. XL-FLASH se puede integrar en formatos de almacenamiento al utilizar una interfaz PCIe NVMe con un tamaño de página de 4 KB, en lugar de los 16 KB que ofrece un dispositivo flash convencional.
Además, es escalable, está construida a partir de la tecnología BiCS FLASH 3D de chip múltiple y ofrece los mismos niveles de fiabilidad de célula, tiempos de lectura/programación rápidos y una relación rendimiento/precio que satisface las necesidades de los usuarios.
Figura 4: XL-Flash de Kioxia se ha demostrado como una alternativa SCM a la DRAM en aplicaciones de lectura intensiva. [Extraído de https://www.kioxia.com/en-jp/rd/technology/topics/topics-20.html].
El reto que queda pendiente es integrar dicha memoria de manera que transmita al máximo posible las mejoras de latencia y el ancho de banda disponible. NVMe utiliza PCIe para acceder a dispositivos de bloqueo, pero este protocolo cuenta con algunas ineficiencias ya que debe asumir que los datos y archivos a acceder, varían en tamaño. Sin embargo, esta no es la intención de la memoria SCM, que se propone ser parte del mapa de memoria. Compute Express Link (CXL) se propone como alternativa, diseñado sobre PCIe 5 y versiones posteriores. Este funciona en la capa de enlace, ofreciendo un acceso eficiente a memorias y aceleradores con dispositivos de caché opcionales. El protocolo es más rápido ya que CXL.mem utiliza la semántica de bytes para acceder a la memoria. Esto es posible ya que los accesos son siempre del mismo tamaño y los dispositivos aparecen en el espacio de direcciones de memoria de la misma manera que la DRAM. Otra consideración importante es que tanto las arquitecturas de procesadores Intel como Arm cuentan con un soporte CXL, por lo que independientemente de si se implementan aplicaciones de IA en servidores o dispositivos de edge computing, XL-FLASH se presenta como una opción adecuada como DRAM de menor coste y flash de menor latencia.
Resumen
Mientras la sociedad y los reguladores debaten sobre el aspecto público de la IA y hasta qué punto debe poder invadir nuestras vidas, la demanda de hardware optimizado para IA continúa creciendo para apoyar las muchas tareas diversas a las que se aplica. Hasta ahora, la memoria DRAM ha sido la memoria preferida para servidores y aplicaciones finales simplemente porque se ha decidido así y no porque realmente sea la mejor opción.
Al analizar los diversos pasos del flujo de datos de la IA, está claro que algunas etapas se benefician de este recurso de gran coste, mientras que otras no. La SCM ofrece una alternativa viable, siendo un punto de latencia intermedio entre la DRAM y las SSD. Al combinarse con la introducción de CXL, el flash de baja latencia, como el XL-FLASH, está bien posicionado para ofrecer mejoras en el precio, el rendimiento del sistema y el consumo de energía para todo tipo de aplicaciones, desde servidores hasta dispositivos de edge-computing que despliegan el poder de la IA.
[1] https://www.crucial.com/articles/sobre-memoria/todo-sobre-ddr5-ram