Ingénierie

Le coût de recalculer ce qui n'a pas changé

2026-09-10 · Tilelli Lab · 8 min de lecture

Pourquoi la mesure continue gaspille presque tout son calcul.

Voici un coût qu'aucune fiche technique n'affiche. Un appareil de mesure continue classe une fenêtre glissante de 128 échantillons. Un nouvel échantillon arrive, la fenêtre avance d'un cran, l'appareil demande une décision. Un runtime sans état recalcule les 128 échantillons — y compris les 127 qui n'ont pas bougé.

Faites cela à 50 Hz et vous exécutez 50 convolutions complètes par seconde là où un pas de temps par couche aurait suffi. Sur un appareil sur batterie, ce n'est pas une inefficacité, c'est le budget énergétique.

Pourquoi un runtime sans état n'a pas le choix

C'est un problème d'interface, pas d'optimisation, et la distinction est tout le sujet. TensorFlow Lite for Microcontrollers, CMSIS-NN et X-CUBE-AI exposent tous une opération par tenseur : vous donnez un tenseur d'entrée, il rend un tenseur de sortie. Il n'y a nulle part où ranger l'historique entre deux appels. L'API ne sait pas dire « voici un nouvel échantillon, avance ton état ».

Ce que fait l'inférence delta

Garder un tampon circulaire d'activations par couche. À l'arrivée d'un échantillon, calculer un pas de temps en couche 1, le passer à la couche 2, et ainsi de suite. Le champ récepteur est déjà dans les anneaux. La sortie n'est pas une approximation : c'est la même arithmétique, réorganisée, donc la décision est identique bit à bit.

Cortex-M4 @ 80 MHzCyclesms
Recalcul complet de la fenêtre7 453 88493,2
Convolution CMSIS-NN, par fenêtre2 556 54832,0
Inférence delta, par décision93 5981,17

Où cela cesse de marcher

Tous les cycles ici viennent d'une émulation Unicorn 2.1.4 : les absolus sont des bornes inférieures, le rapport est la partie transférable. Aucune mesure sur silicium n'existe encore, et aucun chiffre de joules par décision n'existe du tout.