Test IA Orange Pi RV2
Test de inferencia de modelos con diferentes pesos para comprobar la eficiencia de los 2 TOPS (teóricos) anunciados por el fabricante de la Orange Pi RV2
INTELIGENCIA ARTIFICIALSISTEMAS EMBEBIDOS
Biblioman
8/26/20254 min leer


Introducción
La Orange Pi RV2 es una placa de desarrollo con arquitectura RISC-V que según el fabricante integra una CPU con capacidades de hasta 2 TOPS de IA, aunque en el manual no especifica mucho mas y tampoco especifica que tenga una NPU (Unidad de Procesamiento Neuronal) dedicada, por tanto se intuye de que algunos de los núcleos del procesador están optimizados para cargas de trabajo con IA lo que se denomina un esquema de diseño "CPU-FUSED AI PROCESSOR" he realizado una serie de test para intentar entender y comprobar el rendimiento de estas capacidades en IA dentro de las posibilidades que da la poca información disponible acerca del SOC que monta la placa.
Esquema 'CPU-Fused' con Núcleos Optimizados para Cargas de Trabajo de IA
El término 'CPU-Fused' se refiere a la integración de estas capacidades de IA de manera profunda dentro de la arquitectura de la CPU. No se trata solo de añadir un coprocesador de IA, sino de diseñar la CPU desde cero o con modificaciones significativas para que los núcleos existentes o nuevos núcleos especializados trabajen de forma óptima con algoritmos de IA.
Según la documentación que he encontrado las características de esta CPU podrían ser las siguientes :
Núcleos Heterogéneos: En lugar de tener solo núcleos de propósito general, una 'CPU-Fused' podría incluir:
Núcleos de Propósito General: Para tareas informáticas generales y el sistema operativo.
Núcleos de IA Optimizados: Estos son núcleos o bloques de hardware dedicados específicamente a operaciones de IA. Pueden incluir:
Aceleradores de Tensor: Hardware especializado para multiplicar matrices, una operación fundamental en redes neuronales.
Unidades de Inferencia: Optimizadas para ejecutar modelos de IA entrenados de manera rápida y eficiente.
Soporte para Precisión Baja: Capacidad de operar con tipos de datos de menor precisión (como INT4 o INT8) que son comunes en la inferencia de IA de SBCs para ahorrar energía y aumentar la velocidad.
Memoria Compartida y Coherencia: Un aspecto clave del 'fused' es que estos núcleos de IA tienen un acceso muy cercano y coherente a la memoria principal del sistema, y posiblemente a la caché de la CPU. Esto reduce la latencia y el cuello de botella que a menudo se encuentran cuando la CPU y un acelerador de IA externo tienen que comunicarse a través de un bus.
Conjunto de Instrucciones Extendido (ISA): La CPU podría incluir extensiones de su conjunto de instrucciones (ISA) específicamente diseñadas para operaciones de IA en la arquitectura RISC-V. Estas instrucciones permiten que los núcleos de la CPU realicen cálculos de IA de manera más eficiente, incluso en los núcleos de propósito general, si no hay núcleos dedicados de IA.
RISC-V es un ISA modular, lo que significa que el ISA base es muy pequeño y se le pueden añadir extensiones opcionales según las necesidades. Para IA, las extensiones más relevantes son:
Extensiones Vectoriales (RVV): Esta es una de las extensiones más importantes para el rendimiento en cargas de trabajo de IA. RVV permite operaciones de datos múltiples en una sola instrucción (SIMD), lo que es fundamental para multiplicar matrices y realizar otras operaciones vectoriales que son la base de las redes neuronales. Admite tamaños de vector configurables y diferentes tipos de datos, lo que la hace muy flexible.
Propósito para IA:
Acelerar las operaciones básicas de álgebra lineal (multiplicación de matrices, convoluciones) y otras transformaciones en modelos de IA.
Extensiones de Multiplicación/División (RVM): Las operaciones de multiplicación son fundamentales para la IA, especialmente con enteros.
Propósito para IA: Cálculos con enteros, que son cada vez más importantes para la inferencia de IA de baja precisión (INT8, INT4).
Extensiones Personalizadas (Custom Extensions): Una de las grandes ventajas de RISC-V es la capacidad de crear extensiones de ISA personalizadas. Los fabricantes de chips pueden diseñar sus propias instrucciones específicas para IA que se adapten perfectamente a su hardware de aceleración (como los aceleradores de tensor) dentro de los núcleos de IA.
Propósito para IA: Ofrecer un rendimiento y eficiencia energética aún mayores para operaciones de IA muy específicas, adaptadas al diseño particular del chip.
Escenario de pruebas
Para las pruebas de Inferencia de modelos LLM he utilizado los únicos disponibles para está placa y que proporciona el fabricantes, te las puedes descargar desde este enlace.
El procedimiento para ejecutar los modelos compatibles está perfectamente explicado desde la página oficial de Orange Pi
La Orange Pi RV2 utilizada en los test es la de 8 GB de RAM (necesaria para los modelos mas grandes), en la prueba se realiza el test con tres modelos de diferentes parámetros concreta mente los siguientes: qwen2-int4-0.5b, qwen2-int4-1.5b y llama3-int4-8b-blk64-fusion en cada test se monitoriza el uso de cada núcleo de la CPU por medio de HTOP, memoria usada por cada modelo, consumo de la placa y temperatura de la CPU a través de Psensor, en cada prueba se anotan los siguientes datos: Latencia en el primer token, velocidad (token/s) y tanto por ciento usado de cada núcleo de CPU.
Para comparar los modelos entre sí he realizado la misma pregunta a los tres modelos en Español concretamente la siguiente:
Pregunta: "Crea un programa en python que me calcule el factorial de un numero, explica el programa y calcula el factorial del numero 5 como ejemplo"
Tabla con los resultados obtenidos


Vídeo con las pruebas realizadas

Hardware utilizado en el vídeo:
Orange Pi RV2 8GB LPDRR4X + módulo eMMC 256GB: https://s.click.aliexpress.com/e/_oocSKLR
Medidor de potencia: https://s.click.aliexpress.com/e/_oDcTAtQ
