Detección de anomalías mediante ML. Innovación en Verificación - Semiwiki

Detección de anomalías mediante ML. Innovación en Verificación – Semiwiki

Nodo de origen: 2860927

La verificación basada en aserciones solo detecta problemas para los cuales usted ha escrito aserciones. ¿Existe un enfoque complementario para encontrar problemas que no ha considerado: las incógnitas desconocidas? Paul Cunningham (vicepresidente sénior/director general de verificación en Cadence), Raúl Camposano (Silicon Catalyst, emprendedor, ex director de tecnología de Synopsys y ahora director de tecnología de Silvaco) y yo continuamos nuestra serie sobre ideas de investigación. Como siempre, los comentarios son bienvenidos.

La innovación

La elección de este mes es Detección de anomalías basada en aprendizaje automático para el diagnóstico de errores posteriores al silicio. El artículo publicado en la Conferencia DATE 2013. Los autores son/eran de la Universidad de Michigan.

Los métodos de detección de anomalías son populares cuando no se puede precaracterizar lo que se está buscando, por ejemplo en el fraude con tarjetas de crédito o en la seguridad en tiempo real, donde los hacks continúan evolucionando. El método recopila comportamientos durante un período de prueba, los selecciona manualmente para considerarlos dentro del comportamiento esperado y luego busca valores atípicos en las pruebas en curso como problemas potenciales para una revisión más detallada.

Las técnicas de detección de anomalías utilizan análisis estadísticos o aprendizaje automático. Este artículo utiliza el aprendizaje automático para construir un modelo de comportamiento esperado. También se podría imaginar fácilmente que este análisis se desplaza hacia la verificación previa al silicio.

Punto de vista de pablo

Este mes publicamos un artículo de hace 10 años sobre el uso del aprendizaje automático para intentar solucionar automáticamente los errores de causa en la validación post-silicio. Es una lectura divertida y parece una excelente opción para volver a visitarla ahora usando DNN o LLM.

Los autores equiparan los errores post-silicio que causan la raíz con la detección de fraudes con tarjetas de crédito: cada señal rastreada en cada ciclo de reloj puede considerarse como una transacción con tarjeta de crédito, y el problema de la raíz que causa un error se vuelve análogo a identificar una transacción fraudulenta con tarjeta de crédito. .

El enfoque de los autores es el siguiente: dividir las simulaciones en intervalos de tiempo y realizar un seguimiento del porcentaje de tiempo en el que cada señal de depuración rastreada post-silicio es alta en cada intervalo de tiempo. Luego divida las señales según la jerarquía del módulo, apuntando a un tamaño de módulo de alrededor de 500 señales. Para cada módulo en cada segmento de tiempo, entrene un modelo de la distribución "esperada" del porcentaje de tiempos altos de la señal utilizando un conjunto dorado de trazas de post-silicio libres de errores. Este modelo es una agrupación de k-medias muy simple de las señales utilizando la diferencia en % de tiempos altos como la "distancia" entre dos señales.

Para cada prueba post-silicio fallida, el % de distribución de señal alta para cada módulo en cada segmento de tiempo se compara con el modelo dorado y se cuenta el número de señales cuyo % de tiempo alto está fuera del cuadro delimitador de su grupo de modelo dorado. Si este número supera un umbral de ruido, entonces esas señales en ese intervalo de tiempo se marcan como la causa raíz del fallo.

Es una buena idea, pero en los diez casos de prueba de OpenSPARC evaluados, el 30% de las pruebas no informan el intervalo de tiempo o las señales correctos, lo cual es demasiado alto para tener alguna utilidad práctica. Me encantaría ver qué pasaría si se usara un LLM o DNN moderno en lugar de una simple agrupación de k-medias.

La mirada de Raúl

Este es un artículo "temprano" de 2013 que utiliza el aprendizaje automático para la detección de errores post-silicio. Por el momento este debe haber sido un trabajo avanzado listado con 62 citas en Google Scholar.

La idea es sencilla: realizar una prueba muchas veces en un diseño de post-silicio y registrar los resultados. Cuando ocurren errores intermitentes, diferentes ejecuciones de la misma prueba arrojan resultados diferentes, algunos pasan y otros fallan. Las fallas intermitentes, a menudo debidas a eventos asincrónicos en el chip y efectos eléctricos, se encuentran entre las más difíciles de diagnosticar. Los autores consideran brevemente el uso del aprendizaje supervisado, en particular el aprendizaje de una clase (solo hay datos de entrenamiento positivos disponibles, los errores son raros), pero lo descartan como "no es una buena opción para la aplicación de búsqueda de errores”. En cambio, aplican k-significa agrupación; resultados similares se agrupan en k grupos que consisten en resultados "cercanos" que minimizan la distancia de la suma de cuadrados dentro de los grupos. El documento revela numerosos detalles técnicos necesarios para reproducir los resultados: Los resultados se registran como "fracción de tiempo que el valor de la señal fue uno durante el paso de tiempo”; el número de señales de un diseño, del orden de 10,000, es la dimensionalidad en k-significa agrupamiento que es NP-duro con respecto al número de dimensiones, por lo que el número de señales se limita a 500 utilizando el análisis de componentes principales; el número de clusters no puede ser ni demasiado pequeño (underfitting) ni demasiado grande (overfitting); es necesario elegir un umbral de detección de anomalías adecuado, expresado como el porcentaje del total de ejemplos fallidos considerados; La localización temporal de un error se logra mediante la detección de anomalías en dos pasos, identificando qué paso temporal presenta una cantidad suficiente de anomalías para revelar la aparición de un error y luego, en una segunda ronda, identificando las señales de error responsables.

Los experimentos para un diseño OpenSPARC T2 de aproximadamente 500 millones de transistores ejecutaron 10 cargas de trabajo de longitudes de prueba que oscilaban entre 60,000 y 1.2 millones de ciclos 100 veces cada una como entrenamiento. Luego inyectaron 10 errores y ejecutaron 1000 pruebas de errores. En promedio, se detectaron 347 señales para un error (desde ninguna hasta 1000) y se necesitaron ~350 ciclos de latencia desde la inyección del error hasta la detección del mismo. El número de grupos y el umbral de detección influyen fuertemente en los resultados, al igual que la cantidad de datos de entrenamiento. Los falsos positivos y los falsos negativos sumaron entre 30 y 40 (en 1000 pruebas de errores).

Aunque los autores observan que “En general, entre las 41,743 señales del nivel superior de OpenSPARC T2, el algoritmo de detección de anomalías identificó 347, en promedio sobre los errores. Esto representa el 0.8% del total de señales. Por lo tanto, nuestro enfoque es capaz de reducir el conjunto de señales en un 99.2%”., en la práctica esto puede no ser de gran ayuda para un diseñador experimentado. Han pasado 10 años, sería interesante repetir este trabajo utilizando las capacidades actuales de aprendizaje automático, por ejemplo, los LLM para la detección de anomalías.

Comparte esta publicación a través de:

Sello de tiempo:

Mas de Semiwiki