aprendizaje automático para la optimización de código y compilador?


8

Estoy buscando ML para generar código más eficiente (es decir, heurística de tiempo de compilación y tiempo de ejecución). Tengo un phd (compiladores, hpc), pero muy poca experiencia en ML.

Agradecería cualquier referencia al trabajo existente.

Más importante aún, ¿qué técnicas de aprendizaje automático debería explorar?

  • cada muestra de datos es un código + prueba de ejecución + datos de rendimiento
  • gran cantidad de muestras de datos, con el etiquetado correcto
  • gran cantidad de parámetros a modificar
  • cualquier muestra se puede volver a analizar con cualquier parámetro (y obtener el etiquetado correcto)
  • gran cantidad de CPU para ejecutar y volver a ejecutar muestras

Y también algunos de mis supuestos muy sospechosos ...

  • gran parte del código ya es óptimo localmente (optimización básica del compilador)
  • algunos de los parámetros son "conceptos de alto nivel", por ejemplo, reemplazar la matriz con una lista vinculada. (por lo que un pequeño cambio de parámetro tendrá efectos variados)
  • la mejora deseada está limitada (una mejora xK es "suficientemente buena", K es bien conocida)
  • los parámetros son escasos, es decir, en su mayoría cero (sospecho que la mayoría del código es básicamente bueno, y hay relativamente pocos cambios beneficiosos)

Cualquier sugerencia para ponerme en mi camino sería apreciada


Parece que está pidiendo referencias a cualquier documento en el diseño del compilador. Hay muchos.
Tsuyoshi Ito

1
¡Absolutamente no! Estoy mirando las heurísticas que están completamente fuera del diseño del compilador. Estos heurísticos constituyen un espacio problemático muy grande y no pueden analizarse fácilmente incluso en tiempo de ejecución, por lo tanto, ML.
OA1

1
probablemente deberías ir a metaoptimize.com. Esta pregunta está fuera de alcance aquí.
Suresh Venkat

66
Me di cuenta de que "ML" en la pregunta no significa lo que pensé que significaba .
Tsuyoshi Ito

@TsuyoshiIto Diría que estas técnicas podrían aterrizarse en la máquina virtual, no en el compilador en sí mismo
om-nom-nom

Respuestas:


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.