Qualcomm Hexagon 685 DSP es una bendición para el aprendizaje automático

El Snapdragon 845, el nuevo sistema en chip de la familia Snapdragon de Qualcomm, es un procesador potente. Cuenta con núcleos de CPU rápidos, un procesador de señal de imagen Spectra (ISP) de tercera generación y una arquitectura que es 30 por ciento más eficiente en energía que la generación anterior. Pero podría decirse que su componente más impresionante es un coprocesador, el Hexagon 685 DSP, que está hecho a medida para la inteligencia artificial y el aprendizaje automático.

¿Qué hace que el DSP Hexagon 685 de Qualcomm funcione?

La arquitectura Hexagon DSP en el Snapdragon 835. Fuente: Qualcomm

"La matemática vectorial es la base del aprendizaje profundo". - Travis Lanier, director sénior de gestión de productos en Qualcomm

Para comprender qué hace que el DSP Hexagon sea tan único, es útil saber que la IA está impulsada por el tipo de especialización en ingeniería de las universidades de matemáticas con la que están íntimamente familiarizados. El aprendizaje automático implica la computación con grandes vectores, lo que plantea un desafío para los procesadores de teléfonos inteligentes, tabletas y PC. Es difícil para los chips de uso general calcular algoritmos como el descenso de gradiente estocástico, el tipo de algoritmos que se encuentran en el núcleo de las aplicaciones impulsadas por IA, de manera rápida y eficiente. El DSP Hexagon de Qualcomm se introdujo en parte para resolver esto: es excelente para manejar datos de imágenes y sensores, especialmente fotografía.

Pero el DSP Hexagon es capaz de mucho más que arreglarse selfies. Los contextos HVX incluidos (más sobre estos más adelante) le dan la ventaja de los procesadores de propósito general y los núcleos de función fija; el Hexagon 685 DSP es terriblemente eficiente al calcular las matemáticas detrás del aprendizaje automático en el dispositivo, pero conserva la flexibilidad de los procesadores más programables.

Los chips AI como el Hexagon 685 DSP, que a veces se denominan "unidades de procesamiento neuronal", "motores neuronales" o "núcleos de aprendizaje automático", se adaptan específicamente a las necesidades matemáticas de los algoritmos de inteligencia artificial. Son mucho más rígidos en diseño que las CPU tradicionales, y contienen instrucciones y arreglos especiales (en el caso del Hexagon 685 DSP, la arquitectura HVX antes mencionada) que aceleran ciertas operaciones escalares y vectoriales, que se hacen notables en implementaciones a gran escala.

El DSP Hexagon 685 del Snapdragon 845 puede manejar miles de bits de unidades de vectores por ciclo de procesamiento, en comparación con los cientos de bits promedio del núcleo de la CPU por ciclo. Eso es por diseño. Con cuatro subprocesos escalares paralelos para operaciones de palabra de instrucción muy larga (VLIW) y múltiples contextos HVX, el DSP es capaz de hacer malabarismos con múltiples unidades de ejecución en una sola instrucción y atravesar operaciones enteras y decimales de punto fijo.

En lugar de impulsar el rendimiento a través de MHz sin procesar, el diseño del Hexagon 685 apunta a altos niveles de trabajo por ciclo a una velocidad de reloj reducida. Incluye hardware multi-threading que funciona bien para VLIW, ya que multi-threading oculta las latencias de canalización que permiten una mejor utilización de los paquetes VLIW. El subprocesamiento múltiple del DSP significa que puede atender múltiples sesiones de descarga, es decir, aplicaciones concurrentes para audio, cámara, visión por computadora, etc., y acelerar varias tareas al mismo tiempo, evitando que las aplicaciones tengan que luchar por el tiempo de ejecución.

Fuente: Qualcomm

Pero esas no son las únicas fortalezas del Hexagon DSP. Su arquitectura de conjunto de instrucciones (ISA) cuenta con una eficiencia mejorada sobre el VLIW tradicional gracias al código de control mejorado, y emplea trucos inteligentes para recuperar el rendimiento de subprocesos inactivos y estancados. También implementa la programación de subprocesos round-robin de latencia cero, lo que significa que los subprocesos del DSP procesan nuevas instrucciones inmediatamente después de completar el paquete de datos anterior.

Fuente: Qualcomm

Nada de esto es nuevo, para ser claros. Qualcomm presentó el Hexagon DSP 'de primera generación' (o adecuado), el Hexagon 680 o QDSP6 v6, junto con el Snapdragon 820 en 2015, y el Hexagon 680 fue seguido por el Hexagon 682, que ha mejorado ligeramente. La generación es la más sofisticada hasta la fecha y ofrece hasta tres veces el rendimiento general del DSP del Snapdragon 835.

Eso es gracias en gran parte al HVX, que funcionó muy bien para el procesamiento de imágenes (piense en realidad aumentada, visión por computadora, video e imágenes). Los registros HVX del DSP pueden ser controlados por cualquiera de los dos registros escalares, y las unidades HVX y las unidades escalares pueden usarse simultáneamente, lo que resulta en ganancias sustanciales de rendimiento y concurrencia.

Aquí está la explicación de Qualcomm:

“Digamos que está procesando en la CPU móvil en modo de código de control y cambia al modo computacional en el coprocesador. Si necesita algún código de control, debe detenerse y volver del coprocesador a la CPU principal. Con Hexagon, tanto el procesador de código de control en el DSP como el procesador de código computacional en HVX pueden ejecutarse al mismo tiempo para un acoplamiento estrecho de control y código computacional. Eso permite que el DSP tome el resultado de un cálculo HVX y lo use en una decisión de código de control en el próximo ciclo de reloj ”.

El HVX ofrece otra gran ventaja en el procesamiento del sensor de imagen. Los dispositivos Snapdragon con el DSP Hexagon 685 pueden transmitir datos directamente desde el sensor de imágenes a la memoria local del DSP (caché L2), sin pasar por el controlador de memoria DDR del dispositivo. Eso reduce la latencia, por supuesto, pero también mejora la duración de la batería: el procesador Snapdragon está diseñado para estar inactivo durante toda la operación.

Está específicamente optimizado para redes de punto flotante de 16 bits y controlado por el software de aprendizaje automático de Qualcomm: Snapdragon Neural Processing Engine.

"Lo hemos tomado muy en serio", dijo un portavoz de Qualcomm. "Hemos estado trabajando con socios durante los últimos tres años para que utilicen [...] nuestro silicio para IA e imágenes".

Esos socios incluyen Google, que utilizó la parte de procesamiento de imágenes del Hexagon DSP para potenciar el algoritmo HDR + de Pixel y Pixel 2, por ejemplo. Si bien Google también ha presentado su propio Pixel Core, vale la pena señalar que los dispositivos habilitados para DSP Hexagon 685 son los que ven los mejores resultados con el famoso puerto de Google Camera, en parte porque (como hemos confirmado) de la utilización de HVX. Facebook, otro socio, trabajó en estrecha colaboración con Qualcomm para acelerar los filtros y efectos de cámara en tiempo real de Messenger.

Oppo ha optimizado su tecnología de desbloqueo facial para el DSP Hexagon 685, y Lenovo desarrolló su función de detección de puntos de referencia a su alrededor.

Una razón para la gran cantidad de soporte de la plataforma es su simplicidad. El extenso SDK Hexagon de Qualcomm admite el lenguaje Halide para el procesamiento de imágenes de alto rendimiento, y no hay necesidad de preocuparse por los marcos de capacitación de aprendizaje automático: la implementación de un modelo es tan simple como hacer una llamada API, en la mayoría de los casos.

"No estamos [...] compitiendo con los gustos de IBM y Nvidia [en IA], pero tenemos áreas que los desarrolladores pueden aprovechar, y que ya tienen", dijo Qualcomm a los desarrolladores.

Hexágono contra la competencia

El DSP Hexagon 685 del Snapdragon 845 se presenta como un número cada vez mayor de fabricantes de equipos originales (OEM) que buscan soluciones de IA móviles y en sus propios dispositivos. El Kirin 970 de Huawei, el sistema en chip dentro del Mate 10 y Mate 10 Pro, tiene una "unidad de procesamiento neuronal" (NPU) que, según los informes, puede reconocer más de 2, 000 imágenes por segundo a solo 1/50 del consumo de energía de un promedio CPU del teléfono inteligente. Y el sistema en chip Apple A11 Bionic en el iPhone 8, iPhone 8 Plus y iPhone X tiene un "motor neuronal" que realiza modelado facial en tiempo real y hasta 600 mil millones de operaciones por segundo.

Pero Qualcomm dice que el agnosticismo de la plataforma del Hexágono le da una ventaja. A diferencia de Apple y Huawei, que obligan en gran medida a los desarrolladores a usar API patentadas, Qualcomm buscó admitir algunos de los marcos de código abierto más populares desde el primer momento. Por ejemplo, trabajó con Google para optimizar TensorFlow, la plataforma de aprendizaje automático de Google, para el Hexagon 685 DSP: Qualcomm dice que funciona hasta ocho veces más rápido y 25 veces más eficientemente que en dispositivos que no son Hexagon.

Fuente: Qualcomm

En la arquitectura DSP de Qualcomm, la red neuronal profunda GoogLeNet Inception de Google, un algoritmo de aprendizaje automático diseñado para evaluar la calidad de los sistemas de detección y clasificación de objetos, demostró ganancias en una demostración que muestra una aplicación de reconocimiento de imagen con tecnología TensorFlow en dos teléfonos inteligentes: uno que ejecuta la aplicación en la CPU, y la otra que lo ejecuta en el DSP Hexagon de Qualcomm. La aplicación de teléfono inteligente acelerada por DSP capturó más imágenes por segundo, identificó objetos más rápido y tuvo una mayor confianza en su conclusión sobre cuál era el objeto que la aplicación solo de CPU.

Google también usa el DSP Hexagon 685 para acelerar Project Tango, su plataforma de realidad aumentada para teléfonos inteligentes. El Phab 2 Pro de Lenovo, el ZenFone AR de Asus y otros dispositivos con el módulo IR de detección de profundidad de Tango y las cámaras de seguimiento de imágenes aprovechan la Arquitectura de procesamiento heterogéneo de Qualcomm, que delega las tareas de procesamiento entre el DSP Hexagon 685 del conjunto de chips Snapdragon, el hub del sensor y la imagen procesador de señal (ISP). El resultado es una sobrecarga de "menos del 10 por ciento" en la CPU del sistema en chip, según Qualcomm.

"Hasta donde sabemos, somos los únicos usuarios móviles que están optimizando el rendimiento y la eficiencia energética", dijo un portavoz de Qualcomm.

Por supuesto, los competidores también están trabajando para expandir su esfera de influencia y fomentar el soporte para desarrolladores en sus plataformas. El chip neural del Kirin 970 se lanzó con soporte para TensorFlow y Caffe (marco API abierto de Facebook) además de las API Kirin de Huawei, con la integración de TensorFlow Lite y Caffe2 en el camino a finales de este año. Y Huawei trabajó con Microsoft para optimizar su traductor con inteligencia artificial para el Mate 10.

Pero Qualcomm tiene otra ventaja: alcanzar. El fabricante de chips dirigió el 42 por ciento del mercado de chips para teléfonos inteligentes en el primer semestre de 2017, seguido de Apple y MediaTek con 18 por ciento cada uno, según Strategy Analytics. Baste decir que todavía no está temblando en sus botas.

Y Qualcomm predice que solo crecerá. El fabricante de chips proyecta ingresos de $ 160 mil millones para 2025 con tecnologías de software de inteligencia artificial como la visión por computadora, y ve el mercado de teléfonos inteligentes, que se espera que alcance los 8, 6 mil millones de unidades enviadas para 2021, como la plataforma más grande.

Con el Hexagon 685 DSP y otras mejoras "terciarias" que avanzan continuamente hacia el hardware de gama media, también es más fácil para los chips Qualcomm llevar el aprendizaje automático en el dispositivo a todo tipo de dispositivos en un futuro próximo. También ofrecen un práctico SDK para desarrolladores (no es necesario jugar con el lenguaje ensamblador DSP) para aprovechar el Hexagon 685 DSP y HVX en sus aplicaciones y servicios.

"Hay una necesidad de estas unidades de procesamiento dedicadas para el procesamiento neuronal, pero también es necesario expandirlo, para que pueda admitir marcos [de código abierto]", dijo un portavoz de Qualcomm. "Si no creas ese ecosistema, no hay forma de que [...] los desarrolladores puedan crear en él".