¿Cómo puede la IA hacer que las máquinas funcionen más rápido?

The Hook Model – Trigger -> Action -> Reward -> Investment – Made with Canon 5d Mark III and loved analog lens, Leica APO Macro Elmarit-R 2.8 / 100mm (Year: 1993)
“Modern computer processors are opaque, horrendously complicated, and difficult to understand."Image: Unsplash/Markus Spiske
Este contenido ha sido traducido automáticamente con IA.

Un sistema de aprendizaje automático debería permitir a los desarrolladores mejorar la eficiencia computacional en una variedad de aplicaciones.

Investigadores del MIT han inventado una herramienta de aprendizaje automático que predice a qué velocidad los chips informáticos ejecutarán código de diversas aplicaciones.

Para que el código se ejecute lo más rápido posible, los desarrolladores y los compiladores —programas que traducen los lenguajes de programación a código legible por las máquinas— suelen usar modelos de rendimiento que ejecutan el código mediante una simulación de determinadas arquitecturas de chips.

Los compiladores usan esa información para optimizar automáticamente el código, y los desarrolladores la utilizan para abordar los cuellos de botella de rendimiento en los microprocesadores que lo ejecutarán. Sin embargo, los modelos de rendimiento para código máquina son escritos a mano por un grupo relativamente pequeño de expertos y no se validan adecuadamente. Como consecuencia, las mediciones de rendimiento simuladas suelen diferir de los resultados reales.

En una serie de artículos para conferencias, los investigadores describen un nuevo proceso de aprendizaje automático que automatiza este procedimiento, haciéndolo más fácil, rápido y preciso. En un artículopresentado en la Conferencia Internacional sobre Aprendizaje Automático en junio, los investigadores dieron a conocer Ithemal, un modelo de red neuronal que se entrena con datos etiquetados en forma de «bloques básicos» —fragmentos fundamentales de instrucciones computacionales— para predecir automáticamente cuánto tarda un chip determinado en ejecutar bloques básicos que no había visto antes. Los resultados indican que Ithemal funciona con mucha más precisión que los modelos tradicionales ajustados manualmente.

Después, en el Simposio Internacional sobre Caracterización de Cargas de Trabajo de IEEE de noviembre, los investigadores presentaronun conjunto de pruebas de referencia compuesto por bloques básicos de diversos ámbitos, como el aprendizaje automático, los compiladores, la criptografía y los gráficos, que puede utilizarse para validar modelos de rendimiento. Reunieron más de 300 000 de los bloques analizados en un conjunto de datos de código abierto llamado BHive. Durante sus evaluaciones, Ithemal predijo a qué velocidad ejecutarían código los chips de Intel incluso mejor que un modelo de rendimiento desarrollado por la propia Intel.

En última instancia, los desarrolladores y los compiladores pueden usar la herramienta para generar código que se ejecute más rápido y con mayor eficiencia en una cantidad cada vez mayor de diseños de chips diversos y de «caja negra». «Los procesadores informáticos modernos son opacos, tremendamente complicados y difíciles de entender. También es increíblemente difícil escribir código informático que se ejecute lo más rápido posible en estos procesadores», afirma el coautor Michael Carbin, profesor adjunto del Departamento de Ingeniería Eléctrica y Ciencias de la Computación (EECS) e investigador del Laboratorio de Ciencias de la Computación e Inteligencia Artificial (CSAIL). «Esta herramienta supone un gran avance para modelar plenamente el rendimiento de estos chips y mejorar la eficiencia».

Más recientemente, en un artículopresentado en la conferencia NeurIPS en diciembre, el equipo propuso una nueva técnica para generar automáticamente optimizaciones de compiladores. En concreto, generan automáticamente un algoritmo llamado Vemal, que convierte cierto código en vectores que pueden utilizarse para la computación paralela. Vemal supera a los algoritmos de vectorización elaborados manualmente que se usan en el compilador LLVM, un compilador popular en el sector.

Aprender de los datos

Diseñar modelos de rendimiento a mano puede ser «un arte oscuro», afirma Carbin. Intel ofrece documentación exhaustiva, de más de 3000 páginas, que describe las arquitecturas de sus chips. Sin embargo, actualmente solo existe un pequeño grupo de expertos capaz de crear modelos de rendimiento que simulan la ejecución de código en esas arquitecturas.

«Los documentos de Intel no están libres de errores ni son completos, e Intel omite ciertas cosas porque son de su propiedad», afirma Mendis. «Sin embargo, cuando se usan datos, no hace falta conocer la documentación. Si hay algo oculto, se puede aprender directamente de los datos».

Para hacerlo, los investigadores midieron el número medio de ciclos que tarda un microprocesador determinado en procesar instrucciones de bloques básicos —es decir, la secuencia de inicio, ejecución y apagado— sin intervención humana. Automatizar el proceso permite analizar rápidamente cientos de miles o millones de bloques.

Arquitecturas específicas de cada ámbito

Durante el entrenamiento, el modelo Ithemal analiza millones de bloques básicos cuyo rendimiento se ha perfilado automáticamente para aprender exactamente cómo ejecutarán los cálculos las distintas arquitecturas de chips. Es importante destacar que Ithemal recibe texto sin procesar como entrada y no requiere añadir características manualmente a los datos de entrada. Durante las pruebas, se pueden proporcionar a Ithemal bloques básicos que no había visto antes y un chip determinado, y generará un único número que indica a qué velocidad ejecutará ese código el chip.

Los investigadores descubrieron que Ithemal redujo en un 50 % los errores de precisión —es decir, la diferencia entre la velocidad prevista y la velocidad en condiciones reales— frente a los modelos tradicionales elaborados manualmente. Además, en su siguiente artículo demostraron que la tasa de error de Ithemal era del 10 %, mientras que la del modelo de Intel para predecir el rendimiento era del 20 % en una variedad de bloques básicos de varios ámbitos.

La herramienta facilita ahora conocer rápidamente las velocidades de rendimiento de cualquier arquitectura nueva de chips, afirma Mendis. Por ejemplo, ya se están creando arquitecturas específicas de cada ámbito, como la nueva Unidad de Procesamiento Tensorial de Google, diseñada específicamente para redes neuronales, aunque todavía no se comprenden ampliamente. «Si se quiere entrenar un modelo para alguna arquitectura nueva, basta con recopilar más datos de esa arquitectura, analizarlos con nuestro perfilador y usar esa información para entrenar Ithemal; así se obtiene un modelo que predice el rendimiento», afirma Mendis.

A continuación, los investigadores estudian métodos para hacer que los modelos sean interpretables. Gran parte del aprendizaje automático es una caja negra, por lo que no está muy claro por qué un modelo concreto hizo determinadas predicciones. «Nuestro modelo dice que un procesador tarda, por ejemplo, 10 ciclos en ejecutar un bloque básico. Ahora intentamos averiguar por qué», afirma Carbin. «Ese nivel de granularidad sería extraordinario para este tipo de herramientas».

También esperan usar Ithemal para mejorar aún más el rendimiento de Vemal y lograr automáticamente un mejor rendimiento.

Licencia y republicación
Los artículos del Foro Económico Mundial pueden volver a publicarse de acuerdo con la Licencia Pública Internacional Creative Commons Reconocimiento-NoComercial-SinObraDerivada 4.0, y de acuerdo con nuestras condiciones de uso. Las opiniones expresadas en este artículo son las del autor y no del Foro Económico Mundial.