Qualcomm logró grandes avances en el rendimiento de la IA con el nuevo SoC Snapdragon 865. Analizamos los cambios que realizó Qualcomm para acelerar el aprendizaje automático.
Parece que no podemos pasar un día sin ver "inteligencia artificial" en las noticias, y la semana pasada no fue una excepción, en gran parte gracias a la Cumbre Tecnológica de Snapdragon. Cada año, Qualcomm presenta la gran cantidad de mejoras que aporta a su Hexagon DSP y Qualcomm AI Engine. un término que utilizan para toda su plataforma informática heterogénea (CPU, GPU y DSP) cuando hablan de IA. cargas de trabajo. Hace unos años, la insistencia de Qualcomm en alejar la conversación de los temas tradicionales, como las mejoras año tras año en el rendimiento de la CPU, parecía un poco extraña. Sin embargo, en 2019 y con el Snapdragon 865, vemos que la informática heterogénea está de hecho a la cabeza de su impulso de la informática móvil, a medida que la IA y las cargas de trabajo aceleradas por hardware parecen infiltrarse en una variedad de casos de uso y aplicaciones, desde las redes sociales hasta el día a día. servicios.
El Snapdragon 865 trae el motor de inteligencia artificial de quinta generación de Qualcomm y, con él, vienen jugosas mejoras en el rendimiento y la eficiencia energética, pero eso es de esperarse. En un mar de especificaciones, cifras de rendimiento, términos de ingeniería sofisticados y palabras de moda aburridas de marketing, es fácil perder de vista lo que realmente significan estas mejoras. ¿Qué describen? ¿Por qué estas actualizaciones son tan significativas para quienes implementan IA en sus aplicaciones hoy y, quizás más importante, para quienes buscan hacerlo en el futuro?
En este artículo, haremos un recorrido accesible pero completo por el motor Qualcomm AI, repasando su historia, sus componentes y las actualizaciones del Snapdragon 865 y, lo más importante, por qué o cómo Cada uno de ellos ha contribuido a la experiencia actual con los teléfonos inteligentes, desde filtros divertidos hasta asistentes digitales.
Hexagon DSP y Qualcomm AI Engine: cuando la marca marca la diferencia
Si bien no pude asistir a la Cumbre Tecnológica Snapdragon de esta semana, he asistido a todas las demás desde 2015. Si recuerdas, eso Fue el año del desastre que fue el Snapdragon 810, por lo que los periodistas en ese loft de Chelsea en la ciudad de Nueva York estaban ansiosos por descubrir cómo el Snapdragon 820 redimiría a la compañía. Y era un gran conjunto de chips, de acuerdo: prometía mejoras saludables de rendimiento (sin ninguna limitación) al volver a los entonces probados núcleos personalizados por los que Qualcomm era conocido. Sin embargo, también recuerdo un anuncio muy sutil que, en retrospectiva, debería haber recibido más atención: la Hexagon 680 DSP de segunda generación y sus extensiones Hexagon Vector eXtensions de instrucción única, datos múltiples (SIMD), o HVX. Quizás si los ingenieros no hubieran puesto nombre a la característica, habría recibido la atención que merecía.
Este coprocesador permite que los subprocesos de hardware de la unidad DSP escalar accedan a "contextos" HVX (archivos de registro) para amplias capacidades de procesamiento vectorial. Permitió la descarga de importantes cargas de trabajo informáticas desde la CPU o GPU que consume mucha energía al DSP energéticamente eficiente para que las tareas de imágenes y visión por computadora se ejecuten con un rendimiento sustancialmente mejorado por milivatio. Son perfectos para aplicar operaciones idénticas en elementos vectoriales contiguos (originalmente solo números enteros), lo que los convierte en una buena opción para cargas de trabajo de visión por computadora. Hemos escrito un artículo detallado sobre DSP y HVX en el pasado., señalando que la arquitectura HVX se presta bien a la paralelización y, obviamente, al procesamiento de grandes vectores de entrada. En ese momento, Qualcomm promocionó tanto el DSP como el HVX casi exclusivamente describiendo las mejoras que traería a la visión por computadora cargas de trabajo como el detector de esquinas Harris y otras ventanas corredizas métodos.
No fue hasta la llegada del aprendizaje profundo en las aplicaciones móviles de consumo que el DSP, su vector Las unidades de procesamiento (y ahora, un acelerador tensorial) se casarían con la IA y las redes neuronales, en particular. Pero mirando hacia atrás, tiene mucho sentido: la arquitectura del procesador de señal digital (DSP), diseñada originalmente para manejar señales digitales entradas de señales analógicas o del mundo real, se presta a muchas de las mismas cargas de trabajo que muchos algoritmos de aprendizaje automático y neuronales. redes. Por ejemplo, los DSP están diseñados para núcleos de filtro, operaciones de convolución y correlación, cálculos de 8 bits, un montón de operaciones de álgebra lineal (productos vectoriales y matriciales) y de acumulación múltiple (MAC), todas más eficientes cuando paralelizado. El tiempo de ejecución de una red neuronal también depende en gran medida de la multiplicación de vectores, matrices y/o tensores grandes, por lo que Es natural que las ventajas de rendimiento del DSP se traduzcan claramente en arquitecturas de redes neuronales como Bueno. ¡Volveremos a abordar este tema en breve!
En los años siguientes, Qualcomm siguió enfatizando que no ofrecen justo conjuntos de chips, pero plataformas móviles, y que no se centren justo en mejorar componentes particulares, pero entregando computación "heterogénea". En 2017, lanzaron su SDK Snapdragon Neural Processing Engine (para aceleración del tiempo de ejecución) en Qualcomm Developer Network y, a principios de 2018, anunció el motor de inteligencia artificial de Qualcomm para consolidar sus diversos componentes de software y hardware con capacidad de IA (CPU, GPU, DSP) en un solo nombre. Con esta útil nomenclatura, pudieron anunciar claramente sus mejoras en el rendimiento de la IA tanto en el Snapdragon 855 como en el Snapdragon 855. Snapdragon 865, capaz de explicar cómodamente el número de billones de operaciones por segundo (TOPS) y el porcentaje interanual mejoras. Aprovechar las mejoras generacionales en CPU, GPU y DSP, todas ellas con su propio enfoque en la IA. Actualizaciones: la empresa puede publicar puntos de referencia impresionantes frente a la competencia, que repasaremos dentro de poco. Con los recientes esfuerzos de marketing de la compañía y sus mensajes unificados y consistentes sobre computación heterogénea, su marca de IA finalmente está ganando terreno entre los periodistas y entusiastas de la tecnología.
Desmitificando las redes neuronales: un montón de álgebra lineal
Para desenredar mucha de la jerga que encontraremos más adelante en el artículo, necesitamos una breve introducción a que es una red neuronal y lo que necesitas para hacerlo más rápido. Quiero repasar muy brevemente algunos de los fundamentos matemáticos de las redes neuronales, evitando tanta jerga y notación como sea posible. El propósito de esta sección es simplemente identificar qué está haciendo una red neuronal, fundamentalmente: las operaciones aritméticas ejecuta, más que la base teórica que justifica dichas operaciones (¡eso es mucho más complicado!). No dude en pasar a la siguiente sección si desea pasar directamente a las actualizaciones de Qualcomm AI Engine.
"Las matemáticas vectoriales son la base del aprendizaje profundo". – Travis Lanier, director senior de gestión de productos de Qualcomm en la Cumbre Tecnológica Snapdragon 2017
A continuación encontrará un diagrama de red neuronal completamente conectado de retroalimentación muy típico. En realidad, el diagrama hace que todo el proceso parezca un poco más complicado de lo que es (al menos, hasta que te acostumbres). Calcularemos un pase directo, que es en última instancia lo que hace una red cada vez que produce un inferencia, un término que también encontraremos más adelante en el artículo. De momento nos ocuparemos únicamente de la máquina y sus piezas, con breves explicaciones de cada componente.
Una red neuronal consta de secuencial capas, cada una compuesta por varias "neuronas" (representadas como círculos en el diagrama) conectadas por pesas (representado como líneas en el diagrama). En términos generales, existen tres tipos de capas: la capa de entrada, que toma la entrada sin procesar; capas ocultas, que calcula operaciones matemáticas de la capa anterior, y el capa de salida, que proporciona las predicciones finales. En este caso, tenemos sólo una capa oculta, con tres unidades ocultas. El aporte Consiste en un vector, matriz o lista de números de una dimensión o longitud particular. En el ejemplo, tendremos una entrada bidimensional, digamos [1.0, -1.0]. Aquí el producción de la red consta de un número escalar o único (no una lista). Cada unidad oculta está asociada a un conjunto de pesas y un término de sesgo, que se muestra al lado y debajo de cada nodo. Para calcular el suma ponderada salida de una unidad, cada peso se multiplica por cada entrada correspondiente y luego se suman los productos. Luego, simplemente sumaremos el término de sesgo a esa suma de productos, lo que dará como resultado la salida de la neurona. Por ejemplo, con nuestra aportación de [1.0,-1.0], la primera unidad oculta tendrá una salida de 1.0*0.3 + (-1.0) * 0.2 + 1.0 = 1.1. Sencillo, ¿verdad?
El siguiente paso en el diagrama representa una función de activación, y es lo que nos permitirá producir el vector de salida de cada capa oculta. En nuestro caso, usaremos el muy popular y extremadamente simple unidad lineal rectificada o ReLU, que tomará un número de entrada y generará (i) cero, si ese número es negativo o cero (ii) el número de entrada en sí, si el número es positivo. Por ejemplo, ReLU(-0.1) = 0, pero ReLU(0,1) = 0,1. Siguiendo el ejemplo de nuestra aportación tal como propaga a través de esa primera unidad oculta, la salida de 1.1 que calculamos pasaría a la función de activación, produciendo ReLU(1,1)=1,1. La capa de salida, en este ejemplo, funcionará como una unidad oculta: multiplicará las salidas de las unidades ocultas por sus pesos y luego sumará su término de sesgo de 0.2. La última función de activación, la función de paso, convertirá las entradas positivas en 1 y los valores negativos en 0. Sabiendo cómo opera cada una de las operaciones en la red, podemos escribir el cómputo completo de nuestra inferencia de la siguiente manera:
Eso es todo lo que hay que hacer para el cálculo de nuestra red neuronal feedforward. Como puedes ver, el Las operaciones consisten casi exclusivamente en productos y sumas de números.. Nuestra función de activación ReLU(x) También se puede implementar muy fácilmente, por ejemplo, simplemente llamando máximo (x, 0), de modo que devuelve x siempre que la entrada sea mayor que 0, pero en caso contrario devuelve 0. Tenga en cuenta que paso (x) se puede calcular de manera similar. Existen muchas funciones de activación más complicadas, como la función sigmoidea o el tangente hiperbólica, que implican diferentes cálculos internos y son más adecuados para diferentes propósitos. Otra cosa que ya puedes empezar a notar es que también puede ejecutar los cálculos de las tres unidades ocultas y sus aplicaciones ReLU, en paralelo, ya que sus valores no son necesarios al mismo tiempo hasta que calculemos su suma ponderada en el nodo de salida.
Pero no tenemos que detenernos ahí. Arriba, puede ver el mismo cálculo, pero esta vez representado con operaciones de multiplicación de matrices y vectores. Para llegar a esta representación, "aumentamos" nuestro vector de entrada añadiéndole un 1,0 (tono más claro), de modo que cuando ponemos nuestro pesos y nuestro sesgo (tono más claro) en la matriz como se muestra arriba, la multiplicación resultante produce la misma unidad oculta salidas. Luego, podemos aplicar ReLU en el vector de salida, por elementos, y luego "aumentar" la salida de ReLU para multiplicarla por los pesos y el sesgo de nuestra capa de salida. Esta representación simplifica enormemente la notación, ya que los parámetros (pesos y sesgos) de una capa oculta completa se pueden ocultar bajo una sola variable. Pero lo más importante para nosotros es que deja claro que los cálculos internos de la red son esencialmente multiplicaciones de matrices y vectores o productos escalares. Dado cómo el tamaño de estos vectores y matrices escala con la dimensionalidad de nuestras entradas y la cantidad de parámetros en nuestra red, la mayor parte del tiempo de ejecución se dedicará a realizar este tipo de cálculos. ¡Un montón de álgebra lineal!
Nuestro ejemplo de juguete es, por supuesto, muy limitado en su alcance. En la práctica, los modelos modernos de aprendizaje profundo pueden tener decenas, si no cientos, de capas ocultas y millones de parámetros asociados. En lugar de nuestro ejemplo de entrada de vectores bidimensionales, pueden tomar vectores con miles de entradas, en una variedad de formas, como matrices (como imágenes de un solo canal) o tensores (RGB de tres canales). imágenes). Tampoco hay nada que impida que nuestra representación matricial tome múltiples vectores de entrada a la vez, agregando filas a nuestra entrada original. Las redes neuronales también se pueden "cablear" de manera diferente a nuestra red neuronal feedforward, o ejecutar diferentes funciones de activación. Existe un vasto zoológico de arquitecturas y técnicas de red, pero al final, principalmente descomponerse en las mismas operaciones aritméticas paralelas que encontramos en nuestro ejemplo de juguete, solo que a una escala mucho mayor.
Ejemplo visual de capas convolucionales operando sobre un tensor. (Credito de imagen: Hacia la ciencia de datos)
Por ejemplo, los populares redes neuronales convolucionales (CNN) sobre los que probablemente haya leído no están “completamente conectados” como nuestra red simulada. Los “pesos” o parámetros de su contenido oculto capas convolucionales Se puede considerar como una especie de filtro, una ventana deslizante aplicada secuencialmente a pequeños parches de una entrada como se muestra arriba. ¡Esta "convolución" es en realidad solo un producto escalar deslizante! Este procedimiento da como resultado lo que a menudo se llama mapa de características. La agrupación de capas reduce el tamaño de una entrada o la salida de una capa convolucional, calculando el valor máximo o promedio de pequeños parches de la imagen. El resto de la red normalmente consta de capas completamente conectadas, como las de nuestro ejemplo, y funciones de activación como ReLU. Esto se usa a menudo para la extracción de características en imágenes donde los mapas de características de las primeras capas convolucionales pueden "detectar" patrones como líneas o bordes, y las capas posteriores pueden detectar características más complicadas como caras o complejos formas.
Todo lo que se ha dicho es estrictamente limitado a la inferencia, o evaluar una red neuronal después de que se hayan encontrado sus parámetros a través de capacitación que es un procedimiento mucho más complicado. Y nuevamente, hemos excluido muchas explicaciones. En realidad, cada uno de los componentes de la red se incluye con un propósito. Por ejemplo, aquellos de ustedes que han estudiado álgebra lineal pueden observar fácilmente que sin la Funciones de activación no lineales, nuestra red se simplifica a un modelo lineal con capacidad predictiva muy limitada. capacidad.
Un motor de IA mejorado en el Snapdragon 865: un resumen de mejoras
Con esta práctica comprensión de los componentes de una red neuronal y sus operaciones matemáticas, podemos comenzar a comprender exactamente por qué la aceleración del hardware es tan importante. En la última sección, podemos observar que la paralelización es vital para acelerar la red dado que nos permite, por ejemplo, calcular varios productos escalares paralelos correspondientes a cada neurona activación. Cada uno de estos productos punto está constituido a su vez por operaciones de multiplicación y suma de números, generalmente con precisión de 8 bits en el caso de aplicaciones móviles, que deben ocurrir lo más rápido posible. AI Engine ofrece varios componentes para descargar estas tareas según las consideraciones de rendimiento y eficiencia energética del desarrollador.
Un diagrama de una CNN para el popular conjunto de datos MNIST, mostrado en el escenario de la Cumbre Snapdragon de este año. La unidad de procesamiento de vectores es una buena opción para las capas completamente conectadas, como en nuestro ejemplo simulado. Mientras tanto, el procesador tensor maneja las capas convolucionales y de agrupación que procesan múltiples deslizamientos. núcleos en paralelo, como en el diagrama anterior, y cada capa convolucional podría generar muchas características separadas mapas.
Primero, veamos la GPU, de la que solemos hablar en el contexto de los juegos 3D. El mercado de consumo de videojuegos ha estimulado el desarrollo del hardware de procesamiento de gráficos durante décadas, pero ¿por qué son tan importantes las GPU para las redes neuronales? Para empezar, analizan listas masivas de coordenadas 3D de vértices de polígonos a la vez para realizar un seguimiento del estado mundial del juego. La GPU también debe realizar operaciones gigantescas de multiplicación de matrices para convertir (o mapear) estos 3D. coordina en planos 2D, coordenadas en pantalla, y también maneja la información de color de los píxeles en paralelo. Para colmo, ofrecen un alto ancho de banda de memoria para manejar los enormes buffers de memoria para los mapas de bits de textura superpuestos a la geometría del juego. Sus ventajas en paralelización, ancho de banda de memoria y capacidades de álgebra lineal resultantes coinciden con los requisitos de rendimiento de las redes neuronales.
Por lo tanto, la línea de GPU Adreno tiene un papel importante que desempeñar en Qualcomm AI Engine y, en el escenario, Qualcomm afirmó que este componente actualizado en el Snapdragon 865 permite el doble de capacidades de punto flotante y el doble de TOPS en comparación con la generación anterior, lo cual es sorprendente dado que solo registraron un aumento de rendimiento del 25% en la representación de gráficos. Aún así, para esta versión, la compañía cuenta con una Aumento del 50 % en el número de unidades aritméticas lógicas (ALU)Aunque, como es habitual, no han revelado las frecuencias de su GPU. Qualcomm también incluyó la precisión mixta instrucciones, que es exactamente lo que parece: diferente precisión numérica entre operaciones en un único método computacional.
El Hexagon 698 DSP es donde vemos una gran parte de las ganancias de rendimiento que ofrece el Snapdragon 865. Este año, la compañía no ha comunicado mejoras en las extensiones vectoriales de sus DSP (cuyo rendimiento se cuadruplicó respecto a las 855 del año pasado), ni en sus unidades escalares. Sin embargo, sí notan que para el Acelerador Tensor de este bloque, han logrado cuatro veces los TOP en comparación con la versión introducida el año pasado en el Hexagon 695 DSP, al mismo tiempo que puede ofrecer 35% mejor eficiencia energética. Esto es un gran problema considerando la prevalencia de arquitecturas de redes neuronales convolucionales en casos de uso de IA modernos que van desde la detección de imágenes de objetos hasta el reconocimiento automático de voz. Como se explicó anteriormente, la operación de convolución en estas redes produce una matriz 2D de salidas matriciales para cada filtro, lo que significa que cuando se apilan juntos, la salida de una capa convolucional es una matriz 3D o tensor.
Qualcomm también promocionó sus “nuevos y únicos” compresión de ancho de banda de aprendizaje profundo técnica, que aparentemente puede comprimir datos sin pérdidas en alrededor del 50%, moviendo a su vez la mitad de los datos y liberando ancho de banda para otras partes del chipset. También debería ahorrar energía al reducir el rendimiento de los datos, aunque no nos dieron ninguna cifra y también debería haber un pequeño costo de energía para comprimir los datos.
En cuanto al ancho de banda, el Snapdragon 865 admite memoria LPDDR5, lo que también beneficiará el rendimiento de la IA, ya que aumentará la velocidad a la que se transfieren los recursos y los datos de entrada. Más allá del hardware, lo nuevo de Qualcomm Kit de herramientas de eficiencia del modelo de IA facilita la compresión del modelo y los ahorros resultantes en eficiencia energética a disposición de los desarrolladores. Las redes neuronales suelen tener una gran cantidad de parámetros "redundantes"; por ejemplo, pueden hacer que las capas ocultas sean más anchas de lo necesario. Una de las características del AI Toolkit discutidas en el escenario es, por lo tanto, compresión del modelo, siendo dos de los métodos citados la descomposición espacial de valores singulares (SVD) y la compresión bayesiana, ambos que podan efectivamente la red neuronal al deshacerse de nodos redundantes y ajustar la estructura del modelo como requerido. La otra técnica de compresión de modelos presentada en el escenario se relaciona con la cuantificación e implica cambiar la precisión numérica de los parámetros de peso y los cálculos del nodo de activación.
La precisión numérica de los pesos de las redes neuronales se refiere a si los valores numéricos utilizados para el cálculo se almacenan, transfieren y procesan como valores de 64, 32, 16 (media precisión) u 8 bits. El uso de una precisión numérica más baja (por ejemplo, INT8 frente a FP32) reduce el uso general de la memoria y las velocidades de transferencia de datos, lo que permite un mayor ancho de banda e inferencias más rápidas. Muchas de las aplicaciones de aprendizaje profundo actuales han cambiado a modelos de precisión de 8 bits para realizar inferencias, lo que puede parecer Sorprendente: ¿una mayor precisión numérica no permitiría predicciones más “exactas” en clasificación o regresión? ¿tareas? No necesariamente; Una mayor precisión numérica, especialmente durante la inferencia, puede desperdiciarse a medida que las redes neuronales se entrenan para hacer frente a entradas ruidosas o De todos modos, se producen pequeñas perturbaciones durante el entrenamiento, y el error en la representación de bits inferiores de un valor dado (FP) es uniformemente "aleatorio". suficiente. En cierto sentido, la red trata la baja precisión de los cálculos como otra fuente de ruido, y las predicciones siguen siendo utilizables. Dejando a un lado las explicaciones heurísticas, es probable que acumule una penalización en la precisión al cuantificar mal un modelo. sin tener en cuenta algunas consideraciones importantes, razón por la cual se dedican muchas investigaciones a sujeto
De vuelta al Qualcomm AI Toolkit: A través de él ofrecen cuantificación sin datos, lo que permite cuantificar los modelos sin datos ni ajustes de parámetros y, al mismo tiempo, lograr un rendimiento del modelo casi original en diversas tareas. Básicamente, adapta los parámetros de peso para la cuantificación y corrige el error de sesgo introducido al cambiar a pesos de precisión más bajos. Dados los beneficios derivados de la cuantificación, la automatización del procedimiento mediante una llamada API simplificaría la producción y el despliegue del modelo, y afirma Qualcomm. más de cuatro veces el rendimiento por vatio al ejecutar el modelo cuantificado.
Pero, una vez más, esto no es sorprendente: los modelos de cuantificación pueden ofrecer enormes beneficios de ancho de banda y almacenamiento. Convertir un modelo a INT8 no solo le brinda una reducción de 4 veces en el ancho de banda, sino también el beneficio de cálculos enteros más rápidos (según el hardware). Es una obviedad, entonces, que los enfoques acelerados por hardware tanto para la cuantificación como para el cálculo numérico producirían enormes ganancias de rendimiento. en su blogPor ejemplo, Pete Warden de Google escribió que una colaboración entre los equipos de Qualcomm y Tensorflow permite que los modelos de 8 bits funcionen hasta siete veces más rápidoen el HVX DSP que en la CPU. Es difícil exagerar el potencial de una cuantificación fácil de usar, especialmente teniendo en cuenta cómo Qualcomm se ha centrado en el rendimiento de INT8.
La CPU Kryo basada en ARM del Snapdragon 865 sigue siendo un componente importante del motor de IA. Aunque es preferible la aceleración de hardware comentada en los párrafos anteriores, a veces No se pueden evitar aplicaciones que no aprovechan adecuadamente estos bloques, lo que provoca que la CPU retroceder. En el pasado, ARM había introducido conjuntos de instrucciones específicas destinadas a acelerar los cálculos basados en matrices y vectores. En los procesadores ARMv7, vimos la introducción de ARM NEON, una extensión de arquitectura SIMD que permite instrucciones similares a DSP. Y con la microarquitectura ARMv8.4-A, vimos la introducción de una instrucción específica para productos punto.
Todas estas mejoras de rendimiento publicadas se relacionan con muchas de las cargas de trabajo que describimos en la sección anterior, pero también vale la pena tener en cuenta que estas actualizaciones de Snapdragon 865 son solo lo ultimo mejoras en las capacidades de IA de Qualcomm. En 2017, documentamos la triplicación de las capacidades de IA con el Hexagon 685 DSP y otras actualizaciones del chipset. El año pasado, introdujeron su acelerador tensorial y soporte integrado para funciones no lineales (como el ReLU antes mencionado) a nivel de hardware. También duplicaron el número de aceleradores vectoriales y mejoraron el rendimiento de la unidad de procesamiento escalar en un 20%. Combinando todo esto con mejoras en el lado de la CPU, como esas operaciones más rápidas de productos punto, cortesía de ARM, y las ALU adicionales en la GPU, Qualcomm finalmente triplicado capacidades de IA en bruto también.
Beneficios prácticos y casos de uso ampliados
Todas estas actualizaciones han supuesto cinco veces más capacidades de IA en el Snapdragon 865 en comparación con hace apenas dos años, pero Quizás lo más importante es que las mejoras también incluyeron un mejor rendimiento por milivatio, una métrica crítica para los dispositivos móviles. dispositivos. En la Cumbre Snapdragon 2019, Qualcomm nos brindó algunos puntos de referencia comparando su motor AI con dos competidores en varias redes de clasificación. Estas cifras parecen recopilarse utilizando AIMak, una aplicación de evaluación comparativa multiplataforma, que permite realizar comparaciones con la serie A de Apple y los procesadores HiSilicon de Huawei. Qualcomm afirma que estos resultados utilizan todo el motor AI y tendremos que esperar hasta más evaluación comparativa exhaustiva para desenredar adecuadamente el efecto de cada componente y determinar cómo se realizaron estas pruebas. realizado. Por ejemplo, ¿los resultados de la empresa B indican un retroceso de la CPU? Hasta donde yo sé, AIMak actualmente no aprovecha la NPU del Kirin 990 en nuestras unidades Mate 30 Pro, por ejemplo. Pero sí es compatible con el motor de procesamiento neuronal Snapdragon, por lo que sin duda aprovechará el motor Qualcomm AI; Dado que se trata de pruebas internas, no está explícitamente claro si el punto de referencia está utilizando correctamente las bibliotecas o el SDK adecuados para sus competidores.
También hay que decir que Qualcomm está comparando efectivamente las capacidades de procesamiento de IA del Snapdragon 865 con conjuntos de chips anunciados o lanzados anteriormente. Es muy probable que sus competidores traigan mejoras de rendimiento de impacto similar en el próximo ciclo, y si eso es así, En este caso, Qualcomm solo mantendría la corona durante aproximadamente medio año desde el momento en que los dispositivos Snapdragon 865 llegaran a los estantes. Dicho esto, estos siguen siendo indicativos del tipo de mejoras que podemos esperar del Snapdragon 865. En general, Qualcomm ha sido muy preciso al comunicar las mejoras de rendimiento y los resultados comparativos de los próximos lanzamientos.
Todas las redes presentadas en estos puntos de referencia clasifican imágenes de bases de datos como ImageNet, las reciben como entradas y generan una entre cientos de categorías. Nuevamente, se basan en los mismos tipos de operaciones que describimos en la segunda sección, aunque sus arquitecturas son mucho más Son más complicados que estos ejemplos y se consideran soluciones de última generación en el momento de su publicación. En el mejor de los casos, su competidor más cercano proporciona menos de la mitad del número de inferencias por segundo.
En términos de consumo de energía, Qualcomm ofreció inferencias por vatio para mostrar la cantidad de procesamiento de IA posible con una determinada cantidad de energía. En el mejor de los casos (MobileNet SSD), Snapdragon AI Engine puede ofrecer el doble de inferencias con el mismo presupuesto de energía.
La energía es particularmente importante para los dispositivos móviles. Piense, por ejemplo, en un filtro de Snapchat basado en una red neuronal. De manera realista, el proceso de visión por computadora extrae información facial y aplica una máscara o entrada. La transformación solo necesita ejecutarse a una velocidad de 30 o 60 terminaciones por segundo para lograr un fluido. experiencia. Aumentar el rendimiento de la IA sin procesar le permitiría tomar entradas de mayor resolución y generar filtros más atractivos, pero podría También sería preferible conformarse con una resolución HD para cargas más rápidas y reducir el consumo de energía y la limitación térmica. En muchas aplicaciones, "más rápido" no es necesariamente "mejor", y luego se pueden cosechar los beneficios de una mayor eficiencia energética.
Durante el día 2 de la Cumbre Snapdragon, el director sénior de ingeniería de Snapchat, Yurii Monastyrshyn, subió al escenario para mostrar cómo Sus últimos filtros basados en aprendizaje profundo son acelerados enormemente por Hexagon Direct NN utilizando el Hexagon 695 DSP en el Snapdragon. 865.
Además de eso, a medida que los desarrolladores obtienen acceso a implementaciones de redes neuronales más sencillas y más aplicaciones comiencen a emplear técnicas de IA, los casos de uso concurrentes recibirán más atención ya que el teléfono inteligente tendrá que manejar múltiples Canalizaciones paralelas de IA a la vez (ya sea para una sola aplicación que procesa señales de entrada de varias fuentes o para tantas aplicaciones que se ejecutan por separado) en el dispositivo). Si bien vemos ganancias respetables en la eficiencia energética en el DSP, la GPU y la CPU de cómputo, Qualcomm Sensing Hub maneja casos de uso siempre activos para escuchar palabras desencadenantes con un consumo de energía muy bajo. Permite monitorear señales de audio, video y sensores a menos de 1 mA de corriente, lo que permite que el dispositivo detecte señales de sonido particulares (como el llanto de un bebé), además de las palabras clave familiares del asistente digital. En ese sentido, el Snapdragon 865 permite detectar no sólo la palabra clave sino también quién la pronuncia, para identificar a un usuario autorizado y actuar en consecuencia.
Más IA en dispositivos Edge
Estas mejoras pueden, en última instancia, traducirse en beneficios tangibles para su experiencia de usuario. Servicios que involucran traducción, reconocimiento y etiquetado de objetos, predicciones de uso o recomendaciones de artículos, La comprensión del lenguaje natural, el análisis del habla, etc. obtendrán el beneficio de operar más rápido y consumir menos. fuerza. Tener un presupuesto informático más alto también permite la creación de nuevos casos de uso y experiencias, y mover procesos que solían tener lugar en la nube a su dispositivo. Si bien el término IA se ha utilizado de manera dudosa, engañosa e incluso errónea en el pasado (incluso por parte de los fabricantes de equipos originales), Muchos de los servicios que disfruta hoy en día dependen en última instancia de algoritmos de aprendizaje automático de alguna forma. otro.
Pero más allá de Qualcomm, otros fabricantes de chipsets también han iterado y mejorado rápidamente en este frente. Por ejemplo, el 990 5G trajo un diseño de núcleo NPU 2+1, lo que resultó en hasta 2,5 veces el rendimiento del Kirin 980 y el doble que el del Apple A12. Cuando se anunció el procesador, se demostró que ofrecía hasta el doble de fotogramas (inferencias) por segundo. del Snapdragon 855 en INT8 MobileNet, lo que es difícil de cuadrar con los resultados proporcionados por Qualcomm. El Apple A13 Bionic, por otro lado, supuestamente ofreció una multiplicación de matrices seis veces más rápida que su predecesor y mejoró el diseño de su motor neuronal de ocho núcleos. Tendremos que esperar hasta que podamos probar adecuadamente el Snapdragon 865 en dispositivos comerciales frente a sus competidores actuales y futuros, pero es Está claro que la competencia en este espacio nunca se detiene, ya que las tres empresas han invertido una gran cantidad de recursos para mejorar su IA. actuación.