El uso de varios chips de inferencia requiere una planificación cuidadosa
Los últimos dos años han estado muy ocupados en el negocio de los chips de inferencia. Durante un tiempo, parecía que cada dos semanas otra empresa presentaba una solución nueva y mejor. Si bien toda esta innovación fue excelente, el problema fue que la mayoría de las empresas no sabían qué hacer con las diversas soluciones porque no sabían cuál funcionaba mejor que otra. Sin un conjunto de puntos de referencia establecidos en este nuevo mercado, tenían que ponerse al día muy rápido con los chips de inferencia o tenían que creer en las cifras de rendimiento proporcionadas por los distintos proveedores.
La mayoría de los proveedores proporcionaron algún tipo de cifra de rendimiento y, por lo general, fue cualquier punto de referencia que los hiciera lucir bien. Algunos proveedores hablaron sobre TOPS y TOPS / Watt sin especificar modelos, tamaños de lote o condiciones de proceso / voltaje / temperatura. Otros utilizaron el punto de referencia ResNet-50, que es un modelo mucho más simple de lo que la mayoría de la gente necesita, por lo que su valor para evaluar las opciones de inferencia es cuestionable.
Hemos recorrido un largo camino desde aquellos primeros días. Las empresas se han dado cuenta lentamente de que lo que realmente importa al medir el rendimiento de los chips de inferencia es 1) alta utilización de MAC, 2) baja potencia y 3) es necesario que todo sea pequeño.
Sabemos cómo medir, ¿qué sigue?
Ahora que tenemos una idea bastante clara de cómo medir el rendimiento de un chip de inferencia sobre otro, las empresas ahora se preguntan cuáles son las ventajas (o desventajas) de usar varios chips de inferencia juntos en el mismo diseño. La respuesta simple es que el uso de múltiples chips de inferencia, cuando el chip de inferencia está diseñado de la manera correcta, puede generar aumentos lineales en el rendimiento. La analogía de una autopista no está lejos cuando observamos el uso de múltiples chips de inferencia. ¿Quiere una empresa el rendimiento de una autopista de un solo carril o una de cuatro carriles?
Claramente, todas las empresas quieren una autopista de cuatro vías, por lo que la pregunta ahora es "¿cómo entregamos esta autopista de cuatro carriles sin crear tráfico y cuellos de botella?" La respuesta se basa en elegir el chip de inferencia correcto. Para explicarlo, echemos un vistazo a un modelo de red neuronal.
Las redes neuronales se dividen en capas. Capas como ResNet-50 tiene 50 capas, YOLOv3 tiene más de 100 y cada capa recibe una activación de la capa anterior. Así, en la capa N, la salida de la misma es una activación que entra en la capa N + 1. Espera a que entre esa capa, se realiza un cálculo y la salida son activaciones que van a la capa n + 2. Eso continúa a lo largo de las capas hasta que finalmente obtienes un resultado. Tenga en cuenta que la entrada inicial de este ejemplo es una imagen o cualquier conjunto de datos que esté procesando el modelo.
Cuando varias fichas marcan la diferencia
La realidad es que si tiene un chip que tiene un cierto nivel de rendimiento, siempre habrá un cliente que quiera el doble de rendimiento o cuatro veces más rendimiento. Si analiza el modelo de red neuronal, es posible lograrlo en algunos casos. Solo necesita ver cómo divide el modelo entre dos chips o cuatro chips.
Este ha sido un problema con el procesamiento paralelo a lo largo de los años porque ha sido difícil descubrir cómo dividir cualquier procesamiento que esté haciendo y asegurarse de que todo esté sumado, en lugar de restar cuando se trata de rendimiento.
A diferencia del procesamiento paralelo y la computación de propósito general, lo bueno de los chips de inferencia es que los clientes normalmente saben de antemano si quieren usar dos chips para que el compilador no tenga que resolverlo sobre la marcha; se hace en tiempo de compilación. Con los modelos de redes neuronales, todo es totalmente predecible, por lo que podemos analizar y averiguar exactamente cómo dividir el modelo y si funcionará bien en dos chips.
Para asegurarse de que el modelo pueda ejecutarse en dos o más chips, es importante observar tanto el tamaño de activación como el número de MAC capa por capa. Lo que suele ocurrir es que las activaciones más importantes se encuentran en las primeras capas. Eso significa que los tamaños de activación disminuyen lentamente a medida que aumenta el número de capas.
También es importante observar la cantidad de MAC y cuántas MAC se realizan en cada ciclo. En la mayoría de los modelos, el número de MAC realizados en cada ciclo generalmente se correlaciona con los tamaños de activación. Esto es importante porque si tiene dos chips y desea ejecutar a la frecuencia máxima, debe asignar cargas de trabajo iguales a cada chip. Si un chip está haciendo la mayor parte del modelo y el otro chip está haciendo solo un poco del modelo, estará limitado por el rendimiento del primer chip.
La forma de dividir el modelo entre las dos fichas también es importante. Debe observar la cantidad de MAC porque eso determina la distribución de la carga de trabajo. También tienes que mirar qué pasa entre las fichas. En algún momento, debe cortar el modelo en un lugar donde la activación que pasó sea lo más pequeña posible para que la cantidad de ancho de banda de comunicaciones requerido y la latencia de la transmisión sea mínima. Si corta el modelo en un punto donde la activación es muy grande, la transmisión de la activación puede convertirse en el cuello de botella que limita el rendimiento de la solución de dos chips.
El siguiente gráfico muestra para YOLOv3, Winograd, imágenes de 2 megapíxeles el tamaño de salida de activación y las operaciones acumuladas de Mac capa por capa (las capas de convolución se trazan). Para equilibrar la carga de trabajo entre dos chips, el modelo se reducirá aproximadamente al 50% de operaciones MAC acumuladas; en este punto, las activaciones para pasar de un chip al otro son de 1 MB o 2 MB. Para dividir entre 4 chips, los cortes son aproximadamente del 25%, 50% y 75%; observe que los tamaños de activación son más grandes al principio, por lo que el punto de corte del 25% tiene 4 u 8 MB de activaciones para pasar.
Haga clic aquí para ampliar la imagen
Tamaño de salida de activación (barras azules) y operaciones MAC acumulativas capa por capa (línea roja) para imágenes YOLOv3 / Winograd / 2Mpixel , que muestra cómo se divide la carga de trabajo entre varios chips (Imagen:Flex Logix)
Afortunadamente, ahora hay herramientas de rendimiento disponibles para garantizar un alto rendimiento. De hecho, la misma herramienta que modela el rendimiento de un solo chip puede generalizarse para modelar el rendimiento de dos chips. Si bien el rendimiento de cualquier capa determinada es exactamente el mismo, el problema es cómo afecta la transmisión de datos al rendimiento. La herramienta de modelado debe tener esto en cuenta porque si el ancho de banda requerido no es suficiente, ese ancho de banda limitará el rendimiento.
Si está haciendo cuatro chips, necesitará un ancho de banda mayor porque las activaciones en el primer trimestre del modelo tienden a ser mayores que las activaciones en la parte posterior del modelo. Por lo tanto, la cantidad de recursos de comunicaciones en la que invierte le permitirá ir a una mayor cantidad de chips conectados juntos, pero eso será un costo general que todos los chips deben soportar, incluso si son chips independientes.
Conclusión
El uso de múltiples chips de inferencia puede ofrecer mejoras significativas en el rendimiento, pero solo cuando la red neuronal está diseñada correctamente como se describe anteriormente. Si miramos hacia atrás a la analogía de la autopista, existen muchas oportunidades para permitir que el tráfico se acumule utilizando el chip incorrecto y el modelo de red neuronal incorrecto. Si comienza con el chip correcto, está en el camino correcto. Solo recuerde que el rendimiento, no los puntos de referencia TOPS o Res-Net50, es lo que más importa. Luego, una vez que seleccione el chip de inferencia correcto, puede diseñar un modelo de red neuronal igualmente poderoso que brinde el máximo rendimiento para las necesidades de su aplicación.
- Geoff Tate es el director ejecutivo de Flex Logix
Incrustado
- El uso de SaaS y la nube requiere una gestión de datos cuidadosa
- Uso de múltiples circuitos combinacionales
- C # usando
- RISC-V International y CHIPS Alliance colaboran en OmniXtend
- Un pequeño módulo integra varios biosensores
- El paquete de diseño de PCB lleva a la nube
- Planificación de movimiento en tiempo real para vehículos autónomos en varias situaciones, en entornos urbanos simulados
- Las iniciativas digitales en el taller se benefician de una planificación cuidadosa
- AI predice qué tan rápido los chips de computadora ejecutarán el código
- Alimentar de forma inalámbrica varios dispositivos portátiles con una sola fuente
- Cómo llamar a un bloque de funciones desde un cliente OPC UA utilizando un modelo de información