La nueva herramienta del MIT utiliza Machine Learning para predecir el rendimiento del código en un chip
26/03/2020
Normalmente, el rendimiento del código en un chip de ordenador determinado se estima utilizando modelos de rendimiento que prueban el código en una variedad de arquitecturas, después de lo cual los compiladores se utilizan para optimizar automáticamente el código para esas arquitecturas. Pero esos modelos de rendimiento son imperfectos, y la realidad puede diferir significativamente de sus estimaciones, lo que lleva a ineficiencias y déficits. Ahora, el MIT ha destacado una nueva herramienta de sus investigadores que utiliza Machine Learning para predecir con mayor precisión, facilidad y rapidez el rendimiento del código en chips de ordenador.
En esencia, la nueva tubería automatizada, llamada "Ithemal", se entrena en fragmentos de código etiquetados ("bloques básicos") y utiliza esa capacitación para predecir cuánto tiempo tomará un chip ejecutar otros bloques desconocidos. Esto ayuda a los desarrolladores a trabajar para optimizar su código en diversos diseños de chips de "caja negra" donde a menudo se desconocen las especificaciones exactas. Los investigadores también desarrollaron un conjunto de referencia de unos 300,000 bloques básicos, llamando al conjunto de datos de código abierto "BHive".
“Los procesadores de ordenador modernos son opacos, terriblemente complicados y difíciles de entender. También es increíblemente desafiante escribir código de ordenador que se ejecute lo más rápido posible para estos procesadores ”, dijo el coautor Michael Carbin, profesor asistente en el MIT e investigador en el Laboratorio de Ciencias de la Computación e Inteligencia Artificial (CSAIL). "Esta herramienta es un gran paso adelante para modelar completamente el rendimiento de estos chips para mejorar la eficiencia".
A modo de ejemplo, el MIT destaca que Intel proporciona miles de páginas de documentación que describen las arquitecturas de sus chips, además de proporcionar sus propios modelos de rendimiento. "Los documentos de Intel no están libres de errores ni están completos, e Intel omitirá ciertas cosas, porque es de propiedad exclusiva", dijo el coautor Charith Mendis. "Sin embargo, cuando usa datos, no necesita conocer la documentación. Si hay algo oculto, puede aprenderlo directamente de los datos ". Entonces, cuando Ithemal se probó en chips Intel, predijo el rendimiento del código mejor que uno de los propios modelos de Intel. En términos más generales, descubrieron que Ithemal redujo las tasas de error de predicción en aproximadamente un 50 por ciento en comparación con los modelos tradicionales.
La flexibilidad también es clave para la herramienta. "Si deseas entrenar un modelo en una nueva arquitectura, simplemente recopila más datos de esa arquitectura, ejecútalo a través de nuestro generador de perfiles, usa esa información para entrenar a Ithemal, y ahora tienes un modelo que predice el rendimiento", dijo Mendis. En ese sentido, el equipo también introdujo recientemente una técnica para generar automáticamente algoritmos "Vemal" que convierten el código en vectores para la computación paralela, superando nuevamente a las soluciones populares hechas a mano.
A medida que avanzan, el equipo de investigación está trabajando para que Ithemal sea menos un modelo de caja negra. “Nuestro modelo dice que se necesita, digamos, 10 ciclos de procesador para ejecutar un bloque básico. Ahora, estamos tratando de descubrir por qué", dijo Carbin. "Ese es un buen nivel de granularidad que sería sorprendente para este tipo de herramientas".
0 comentarios