Microsoft Research presenta no uno, no dos, sino cuatro nuevos compiladores de IA

Microsoft Research presenta cuatro nuevos compiladores de IA

El paralelismo, la computación, la memoria, la aceleración de hardware y el flujo de control son algunas de las capacidades abordadas por los nuevos compiladores.

Creado usando Midjourney

Recientemente comencé un boletín educativo centrado en la inteligencia artificial, que ya cuenta con más de 160,000 suscriptores. TheSequence es un boletín orientado a ML (sin exageraciones, sin noticias, etc.) que se lee en 5 minutos. El objetivo es mantenerte actualizado sobre proyectos de aprendizaje automático, documentos de investigación y conceptos. Por favor, pruébalo suscribiéndote a continuación:

TheSequence | Jesus Rodriguez | Substack

La mejor fuente para mantenerte actualizado sobre los desarrollos en el aprendizaje automático, la inteligencia artificial y los datos…

thesequence.substack.com

Los compiladores están experimentando un renacimiento en la era de la IA generativa. En el contexto de la IA, un compilador es responsable de traducir una arquitectura de red neuronal en código ejecutable en una topología de hardware específica. Estas dos áreas: arquitecturas de modelos y hardware, han experimentado una explosión de innovación, lo que hace que los compiladores de IA se vuelvan obsoletos con regularidad.

Los desafíos en la compilación de IA son muchos, desde la aceleración de hardware hasta la eficiencia computacional y de memoria. Microsoft Research ha estado a la vanguardia de la investigación en compiladores de IA y recientemente presentaron un cuarteto de compiladores de IA de última generación, cada uno diseñado para abordar desafíos específicos en el ámbito de las redes neuronales profundas (DNNs). La lista incluye los siguientes compiladores:

· Rammer: Para el paralelismo

· Roller: Para la computación

· Welder: Para la memoria

· Grinder: Para el flujo de control y la aceleración de hardware

Veamos cada uno de ellos.

Rammer: Pionero en la utilización paralela de hardware

Las redes neuronales profundas (DNNs) se han vuelto fundamentales para diversas tareas de inteligencia, que van desde la clasificación de imágenes hasta el procesamiento del lenguaje natural. Para aprovechar su potencia, se emplean una gran cantidad de dispositivos informáticos, incluyendo CPUs, GPUs y aceleradores especializados de DNNs. Un factor crítico que influye en la eficiencia de cálculo de las DNNs es la planificación, el proceso que dicta el orden de las tareas computacionales en el hardware. Los compiladores de IA convencionales a menudo representan el cálculo de las DNNs como un gráfico de flujo de datos con nodos que simbolizan los operadores de DNN, programados para ejecutarse en aceleradores de forma independiente. Sin embargo, esta metodología introduce una sobrecarga significativa de planificación y subutiliza los recursos de hardware.

Ingresa Rammer, un compilador de DNNs que visualiza el espacio de planificación como un plano bidimensional. Aquí, las tareas computacionales son similares a ladrillos, con formas y tamaños variados. La misión de Rammer es organizar estos ladrillos de manera ajustada en el plano bidimensional, al igual que construir un muro sin costuras. No se permiten brechas para optimizar la utilización del hardware y la velocidad de ejecución. Rammer actúa eficazmente como un compactador dentro de este dominio espacial, colocando de manera eficiente los ladrillos de programas de DNN en diferentes unidades de cómputo del acelerador, mitigando así la sobrecarga de planificación en tiempo de ejecución. Además, Rammer introduce abstracciones novedosas e independientes del hardware para tareas de cómputo y aceleradores, ampliando el espacio de planificación y permitiendo horarios más eficientes.

Crédito de la imagen: Microsoft Research

Roller: Mejorando la eficiencia computacional

Los aceleradores que cuentan con unidades de cómputo paralelo y jerarquías de memoria intrincadas requieren un enfoque sistemático de transferencia de datos. Los datos deben ascender a través de las capas de memoria, divididos en ladrillos más pequeños en cada paso, antes de llegar al procesador de nivel superior para el cálculo. El desafío radica en la partición y llenado del espacio de memoria con ladrillos grandes para optimizar la utilización y eficiencia de la memoria. El enfoque actual utiliza el aprendizaje automático para las estrategias de particionamiento de ladrillos, lo que requiere numerosos pasos de búsqueda evaluados en el acelerador. Este proceso prolongado puede llevar días o semanas para compilar un modelo completo de IA.

Roller agiliza la compilación mientras mantiene una eficiencia de cálculo óptima. En su núcleo, el Roller encarna un concepto único similar al funcionamiento de un rodillo de carretera. Este innovador sistema deposita suavemente datos tensoriales de alta dimensión en una estructura de memoria bidimensional, al igual que colocar cuidadosamente baldosas en el suelo. Lo hace con precisión, discerniendo los tamaños de baldosas ideales según los atributos específicos de la memoria. Al mismo tiempo, Roller encapsula inteligentemente la forma del tensor para armonizar con los matices del hardware del acelerador subyacente. Esta alineación estratégica agiliza significativamente el proceso de compilación al restringir el rango de opciones de forma, lo que finalmente conduce a resultados altamente eficientes.

Crédito de la imagen: Microsoft Research

Welder: Optimizando el Acceso a la Memoria

A medida que los modelos de DNN demandan cada vez más datos de alta fidelidad y núcleos de computación más rápidos en los aceleradores de hardware modernos, han surgido cuellos de botella en el ancho de banda de la memoria. Para contrarrestar esto, Welder, el compilador de aprendizaje profundo, optimiza de manera integral la eficiencia del acceso a la memoria en el modelo de DNN de principio a fin. El proceso implica múltiples etapas, donde los datos de entrada se dividen en bloques que atraviesan diferentes operadores y capas de memoria. Welder transforma este proceso en una línea de ensamblaje eficiente, soldando diferentes operadores y bloques de datos, reduciendo el tráfico de acceso a memoria en capas de memoria de nivel inferior.

Crédito de la imagen: Microsoft Research

Grinder: Dominando la Ejecución del Flujo de Control

En la computación de IA, a veces se acompaña de lógica de control compleja el movimiento de bloques de datos. Los compiladores de IA actuales se centran predominantemente en la eficiencia de la ejecución del flujo de datos, descuidando el soporte eficiente para el flujo de control. Grinder cubre esta brecha integrando sin problemas el flujo de control en el flujo de datos, lo que permite una ejecución eficiente en aceleradores. Unifica la representación de los modelos de IA a través de uTask, una nueva abstracción, y utiliza estrategias heurísticas para optimizar la ejecución del flujo de control en los niveles de paralelismo del hardware. Grinder mueve eficientemente el flujo de control hacia los kernels del dispositivo, optimizando así el rendimiento a través de los límites del flujo de control.

Crédito de la imagen: Microsoft Research

En resumen, los cuatro compiladores de IA de Microsoft Research: Rammer, Roller, Welder y Grinder, allanan el camino para una optimización mejorada de la carga de trabajo de DNN, eficiencia de acceso a memoria y ejecución de flujo de control en aceleradores de hardware, marcando un avance significativo en la tecnología de compiladores de IA.