🛠 Exploiter le NPU 5 TOPS de l'A311D pour l'inférence embarquée

Banana Pi BPI-CM4 (Amlogic A311D, factor de forma Raspberry Pi CM4) · avance · Schéma : IMG-bananapi-cm4-avance-1-npu-5tops-banapi-cm4.svg — BPI-CM4 sur son carrier avec une caméra USB et un écran HDMI affichant une détection d'objets ; la puce A311D est surlignée avec l'étiquette « NPU 5 TOPS ».

Objetivos

El Amlogic A311D incorpora una NPU anunciada con 5 TOPS — el argumento del BPI-CM4 frente a un CM4 de Broadcom: el fabricante insiste en la ausencia de un acelerador externo tipo Google Coral. Pero la pila de la NPU reside en los binarios de Amlogic/BSP, no en el kernel mainline: la vía recomendada por la wiki es arrancar una imagen rootfs de Khadas VIM3 (mismo SoC A311D) que aporta la cadena completa de demostración de la NPU. Verificarás la visibilidad de la NPU según la imagen, arrancarás el rootfs VIM3 desde una microSD y lanzarás una inferencia de clasificación, para luego comparar la CPU (6 núcleos) y la NPU.

Hardware

Código completo

# 1) Sur l'image vendor (BSP 4.9) : vérifier la présence de la pile Amlogic
dmesg | grep -i -e npu -e mali
ls /dev/ | grep -i -e npu -e vpu

# 2) Amorcer le rootfs VIM3 sur la microSD (même famille meson-g12b)
sudo dd if=vim3-ubuntu-rootfs.img of=/dev/sdX bs=8M status=progress conv=fsync

# 3) Sur le système VIM3 booté : récupérer la suite de démo NPU Khadas
sudo apt update && sudo apt install -y git build-essential
git clone https://github.com/khadas/khadas-fptl && cd khadas-fptl
./install_dependencies.sh && make
# Exécuter une classification MobileNet sur une image
./demo/demo_classification_mobilenet ./model/mobilenet_v1/fp_np/ ./res/cat.jpg

Verificación esperada

La demo imprime las clases de ImageNet con puntuaciones y tiempos de inferencia por imagen; repetir la misma carga con TFLite en los 6 núcleos de la CPU muestra la diferencia de latencia y consumo. En un kernel mainline (Armbian), no se espera ninguna interfaz de NPU utilizable: es una limitación documentada, no un fallo.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales