Qualcomm AI Engine

Rubén Rodríguez Abril

La trayectoria de Qualcomm es una de las más interesantes de Silicon Valley. Sus primeros chips consistían en módems creados con el objetivo de garantizar comunicaciones de calidad en un ancho de banda reduco. A mediados de los 2000, la compañía dio el salto al mercado de los smartphones y desarrolló Qualcomm QSD8250, el primer sistema en chip (SoC), que integraba todos los componentes lógicos en una sola unidad física. En la actualidad, el motor Qualcomm AI Engine es la propuesta de la empresa para el desarrollo de la inteligencia artificial. Su examen es el objetivo de este artículo.

Qualcomm AI Engine es el nombre que recibe la plataforma de Qualcomm que integra elementos de hardware y software para ejecutar modelos de aprendizaje profundo (y en general, de aprendizaje de máquina) de la manera lo más efectiva posible. Los elementos de hardware de esta plataforma consisten en partes del SoC del móvil mientras que los elementos de software de la misma vienen representados por una amplia pila de herramientas que abarca desde el sistema operativo (en el más bajo nivel) hasta los frameworks más conocidos de IA como TensorFlow o PyTorch, pasando por drivers y compiladores, tal y como se muestra en la imagen.

SoC: System on a Chip

El inicio de la serie Snapdragon en el año 2007 conllevó la aparición en la industria de smartphones de una nueva arquitectura, SoC (System on a chip, sistema en un chip), en la que los principales componentes lógicos de un teléfono inteligente están integrados en un sólo chip y se comunican entre sí a través de un bus de gran velocidad de transmisión y baja latencia. El nuevo esquema creada por Qualcomm se generalizó en los años siguientes y en la actualidad su implantación es casi general en el sector. En el año 2018, coincidiendo con la salida de Snapdragon 845, tuvo lugar otro gran hito innovador de la empresa: el lanzamiento de la plataforma Qualcomm AI Engine (motor de IA de Qualcomm). A diferencia de los chips de otras compañías, que se limitaban a incorporar aceleradores para cálculos matriciales y tensoriales, el nuevo motor de Qualcomm compuesto de elementos de hardware y software, balanceaba las tareas de machine learning a lo largo de buena parte de las unidades del chip. Particularmente los componentes siguientes (en este caso concreto, tomamos por referencia a otro chip más reciente, Snapdragon 8 Gen 3) del SoC quedaron integrados en la estructura del mismo:

-La CPU Kryo 750 se encarga de ejecutar tareas que no requieran alto nivel de cómputo en paralelo. Se compone de varios núcleos, todos de arquitectura ARM Cortex, que funcionan a diferentes frecuencias. Se sigue un esquema 1 + 4 + 3, en cuya virtud hay 1 núcleo de alto rendimiento, para la realización de tareas que requieren un alto consumo de potencia y de recursos computacionales, 4 de rendimiento medio, 3 de eficiencia energética, que son utilizados para tareas menos intensivas.

-La NPU Hexagon, es la unidad de procesamiento neural, un acelerador cálculos matriciales y vectoriales. Deriva su arquitectura del Hexagon DSP (Digital Signal Processor) de modelos anteriores, que originariamente estaba especializado en el procesamiento de señales digitales, de video y de audio. La NPU dispone de unidades aritméticas encargadas de la realización de operaciones de cálculo con tensores, vectores y escalares. Todas ellas disponen de una memoria común. El paralelismo viene representado por las instrucciones VLIW (Very Long Instruction Word), de unos 32 bits de longitud e introducidas por el compilador en el búfer de la NPU. Por medio de las mismas se ejecutan varias operaciones aritméticas a la vez.

-el Qualcomm Sensing Hub Gen 3 (concentrador de sensores) se ocupa, como su propio nombre indica, el procesamiento de la información proveniente de los diferentes sensores del dispositivo.

-la GPU Adreno 750 gestiona los procedimientos de rasterización, procesamiento de shaders, texturas y otras tareas de procesamiento de gráficos.

Figura 1: Esquema de un SoC Snapshot de Qualcomm. Aparecen resaltadas y en color claro aquellas partes del mismo que se integran dentro del Qualcomm AI Engine. Todos ellos pueden trabajar de un modo coordinado para la ejecución de uno o varios modelos de aprendizaje profundo simultáneamente. Fuente: Qualcomm.

Durante el Snapdragon Summit 2023 se presentó un asistente personal de IA con un avatar animado en tiempo real. Y el ponente demostró cómo se distribuyen las cargas de trabajo entre los distintos componentes del SoC:

-El modelo de lenguaje encargado de determinar el contenido de las respuestas (Llama 2-7B) sería ejecutado por la NPU, quien además determinaría las expresiones faciales del avatar.

-La generación de habla a partir del texto creado por Llama 2 se realizaría dentro de la CPU, mediante un modelo TTS.

-El reconocimiento del habla del usuario y su transformación en texto se realizaría mediante un modelo Whisper de Open AI, que correría en el Qualcomm Sensing Hub.

-Por último, la GPU rasterizaría los avatares cuyas expresiones faciales habrían sido generadas previamente por la NPU.

Qualcomm AI Stack

Qualcomm AI Stack es el conjunto de herramientas de software que permiten la implementación de los algoritmos de aprendizaje de máquina en los diferentes chips de Qualcomm, a diferentes escalas, desde dispositivos IoT y smartphones hasta PCs y vehículos.

Tal y como se muestra en la imagen, la pila se estructura en diferentes niveles:

-Sistemas operativos (Linux, Android, Zephyr, Ubuntu, CentOIS, QNX).

-Software del sistema, que permite la comunicación del sistema operativo con los diferentes dispositivos del SoC. En este nivel, se encontrarían los controladores (drivers).

-Librerías de programación, compiladores, emuladores.

Frameworks de IA, como Keras, PyTorch y TensorFlow y entornos de ejecución como el Qualcomm Neural Processing SDK o Qualcomm AI Engine Direct.

-Herramientas y aplicaciones de IA, directamente manejadas por los usuarios.

Figura 2. Pila de software del Qualcomm AI Engine. Fuente: Qualcomm.

Rendimiento

Qualcomm AI Engine fue sometido a pruebas de rendimiento tanto en móvil como en PC. Y los chips Snapdragon X Elite (PC) y Snapdradon 8 Gen (móvil) obtuvieron un rendimiento varias veces superior a sus competidores en los benchmark Procyon AI y AIMark V4.3 y AITuTu respectivamente. En cuanto a tareas de rendimiento generativo, el modelo Llama 2-7B fue ejecutado a una ratio de 30 tokens por segundo (20 en móviles), mientras que Stable Difussion generó imágenes de 512×512 pixeles en una media de 0,9 segundos.

En la fecha en la que se escribe este artículo (Agosto de 2024), los SoCs de Qualcomm equipan buena parte de los móviles existentes en el mercado, a lo largo de todo el mundo. Por ello, las arquitecturas y plataformas esbozados en este artículo tienen una gran importancia en la implementación de los algoritmos de IA, al menos a escala usuario.

Deep Learning

Mistral AI