🛠 Inférence de réseau de neurones sur le C7x+MMA avec edgeai-tidl-tools
Objectifs
Sortir de l'émulation CPU : installer la pile TI edgeai-tidl-tools (le J721E/TDA4VM est un device officiellement supporté), récupérer des modèles pré-quantisés de l'Edge AI Model Zoo et exécuter une classification/détection sur l'accélérateur C7x+MMA (~8 TOPS INT8) avec le runtime TIDL. C'est le tuto qui justifie l'achat de cette carte.
Matériel
- 1 BeagleBone AI-64 avec image Debian BeagleBoard récente ou image TI Edge AI
- Stockage généreux : microSD 64 Go+ ou NVMe via M.2 — la pile et les modèles pèsent plusieurs Go, les 16 Go d'eMMC ne suffisent pas
- Réseau pour télécharger modèles et dépendances
Code complet
sudo apt update && sudo apt install -y python3-pip git python3-venv
git clone --depth 1 https://github.com/TexasInstruments/edgeai-tidl-tools
cd edgeai-tidl-tools
# Suivre le README pour le setup aarch64 ON-DEVICE (script osd/setup.sh) ;
# les versions exactes d'API bougent, rester sur un tag stable (ex. 10_01_00_02).
export OS_ARCH=aarch64
cd examples/osd && sudo ./setup.sh && cd ../..
sudo ./get_models.sh # modèles pré-quantisés du Model Zoo
# Exemple de classification sur le C7x-MMA (cible SoC, pas CPU)
sudo ./tidl_classification \
-t 1 -m mobilenet-v2-12 \
-l ../../dl_test_lists/labels.txt \
-i ../../test_images/ -b ../../model_zoo/
# Vérifier que l'accélérateur travaille (pas les A72)
htop # les 2 Cortex-A72 doivent rester majoritairement inactifs
Vérification attendue
Le benchmark affiche un débit (FPS ou inférences/s) très supérieur à ce qu'obtiendrait le CPU, et le log du runtime indique l'exécution sur le target SoC avec offload C7x/MMA. Les classes et scores de l'image de test sortent correctement.
Erreurs fréquentes
- Croire accélérer alors que tout tourne sur les A72 : vérifier le mode d'exécution dans le log et l'occupation CPU (htop) — un modèle non supporté retombe silencieusement sur le CPU.
- Manquer de place sur l'eMMC : l'installation échoue à 99 % sans message clair ; migrer la racine ou travailler depuis microSD (voir le tuto stockage).
- Mélanger les versions : l'API TIDL change entre tags ; épingler un tag (ex. 10_01_00_02) et son Model Zoo associé.
- Image mainline pure : les bibliothèques C7x-MMA viennent de la pile downstream TI ; sans elle, rien ne s'accélère.
- Dépôt git.beagleboard.org derrière anti-bot Anubis : certains scripts de fetch Yocto échouent (issue #45) — utiliser les miroirs GitHub.
Autres tutoriels pour cette carte
- Flasher l'image officielle et démarrer la BeagleBone AI-64
- Faire clignoter une LED sur la broche P8_03 avec libgpiod
- Surveiller la température et l'alimentation du TDA4VM
- Réseau : Ethernet Gigabit unique et module Wi-Fi en M.2 E-key
- Caméra MIPI CSI et encodage H.264 matériel via GStreamer
- Remoteproc : inventorier et démarrer les co-processeurs R5F et C66x
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash