CNCC2020_ 贾志豪 _Descubrimiento automatizado de optimizaciones de aprendizaje automático

Desafíos encontrados:

  1. ¿Cómo encontrar el esquema paralelo óptimo, la eficiencia de diferentes esquemas paralelos es muy diferente?

  2. Todo el tiempo aparecen nuevas plataformas ¿Cómo adaptarse rápidamente a nuevos operadores y plataformas?

¿Cómo generar automáticamente optimizaciones para algoritmos de aprendizaje automático?

  1. Optimización del gráfico de cálculo;

  2. Optimización paralela;

  3. Optimización de diferentes plataformas;
    Inserte la descripción de la imagen aquí

Optimización del equipo en el gráfico de cálculo:

¿Qué es la optimización de gráficos computacionales?

  1. Este diagrama es similar al diagrama de flujo de instrucciones;
    Inserte la descripción de la imagen aquí
  2. Definir algunas reglas de operación para optimizar el gráfico, como la fusión de operadores; (las reglas son muy complicadas, actualmente hay más de 500)
    Inserte la descripción de la imagen aquí

¿Problemas con la optimización de gráficos computacionales?

  1. Problema: problema de robustez, debido a que hay más plataformas, la optimización puede no ser buena;
    Inserte la descripción de la imagen aquí

  2. Problema: constantemente aparecen problemas de escalabilidad, nuevas plataformas de hardware y operadores;
    Inserte la descripción de la imagen aquí

  3. Problema: rendimiento, es difícil utilizar la optimización del programa como objetivo y se pierden algunas oportunidades de optimización;
    Inserte la descripción de la imagen aquí

  4. Ejemplo: Primero complique el operador simple, y luego habrá oportunidades para fusionarse;

    1. Aun así, para algunas plataformas, el rendimiento del gráfico optimizado puede ser peor, por lo que es difícil agregarlo a las reglas de optimización;
      Inserte la descripción de la imagen aquí
  5. En resumen, la complejidad de la optimización de gráficos;
    Inserte la descripción de la imagen aquí

¿Solución?

  1. No defina las reglas manualmente, utilice el programa para optimizar; en su lugar, proporcione un método para optimizar y evaluar automáticamente la calidad de la optimización;

    1. Beneficios, reduce la cantidad de código;
    2. Beneficios, puede traer lo mejor tres veces la mejora del rendimiento;
      Inserte la descripción de la imagen aquí
  2. ¿Qué es el reemplazo de mapas?

    1. La equivalencia de los gráficos, es decir, los gráficos antes y después de la optimización son equivalentes y los resultados de la ejecución son los mismos;
      Inserte la descripción de la imagen aquí
  3. Flujo de trabajo de TASO:

    1. Ingrese primero el conjunto de operadores de la plataforma de hardware;

    2. El generador de reemplazo de gráficos genera posibles reglas de reemplazo;

    3. Reemplace el validador con un gráfico para verificar la exactitud de la regla de reemplazo del gráfico;

    4. La regla de reemplazo de mapa correcta se agregará a la regla de reemplazo de mapa;
      Inserte la descripción de la imagen aquí

  4. ¿Cómo generar posibles reglas de reemplazo y cómo verificar la exactitud de las reglas de reemplazo?

    1. Utilice la tecnología de huellas dactilares de imagen para generar posibles reglas de reemplazo;

    2. Utilice la descripción del operador y el demostrador de teoremas para verificar la exactitud de la regla de reemplazo;
      Inserte la descripción de la imagen aquí

  5. Generador de reglas de reemplazo de diagrama;

    1. Según los operadores soportados por la plataforma de hardware, enumere todos los gráficos posibles;

    2. Debido a que el espacio de enumeración es demasiado grande, solo se considera un gráfico de escala limitada, como un gráfico de cuatro operadores;
      Inserte la descripción de la imagen aquí

    3. Los gráficos de los cuatro operadores constan de 66 millones en total. Considerando la equivalencia, si uno compara uno por uno, la relación al cuadrado es alta y la complejidad es alta; al utilizar la tecnología de huellas dactilares de gráficos para generar entradas aleatorias, las mismas entradas y salidas son consistentes , entonces los gráficos son equivalentes; (similar a la verificación de consistencia FM)equivocado Si las salidas de la misma entrada son inconsistentes, las gráficas no son necesariamente equivalentes y solo se consideran las gráficas con resultados de salida consistentes;
      Inserte la descripción de la imagen aquí

    4. El siguiente paso es verificar la equivalencia de cualquier entrada, incluido el uso de lógica matemática, etc .;
      Inserte la descripción de la imagen aquí

    5. El demostrador automático de teoremas de grafos se puede utilizar para demostrar la equivalencia de las reglas de reemplazo de grafos;
      Inserte la descripción de la imagen aquí

    6. Incluso si se agrega un operador por primera vez, solo necesita definir algunas reglas para el comprobador de teoremas de grafos según el operador, y la verificación se puede realizar automáticamente;
      Inserte la descripción de la imagen aquí

  6. Optimizador de gráficos, considere qué reglas de reemplazo usar;

    1. Basado principalmente en el costo de cada operador ( medido en hardware ) para evaluar el costo del gráfico;

    2. Según el operador, solo se necesitan unos 10 minutos para ejecutar el proceso nuevamente;
      Inserte la descripción de la imagen aquí

  7. El efecto de optimización de este método;

    1. El equipo de prueba estándar puede lograr resultados similares;

    2. Para la nueva estructura, no se ha optimizado completamente de forma manual, por lo que el efecto es mejor;
      Inserte la descripción de la imagen aquí

futuro:

  1. Considere si es posible combinar la optimización basada en gráficos TASO con la optimización basada en el operador TVM;

  2. TASO parece ser de código abierto, puedes experimentarlo;
    Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_41754258/article/details/112505531
Recomendado
Clasificación