96 % de processeur : où passe vraiment le calcul d'un robot
- Log
- 8 sur 28
- Date
- Lecture
- 2 min de lecture
Compétences de ce log
Le soir du 20 octobre, je me suis posé une question franche : le robot est-il déjà à bout de souffle ? Et si oui, me faut-il un portable à côté de lui pour chaque démonstration ?

Ce que les chiffres ont dit
À 19 h 51, le processeur du robot était à 96 %. Mon programme seul prenait 2,3 de ses quatre cœurs, le logiciel du fabricant 0,9. Mémoire et température allaient bien : 3,1 Go libres, 54 °C, aucun bridage. La machine ne défaillait donc pas. Elle était simplement pleine.
Puis le budget, mesuré sur 110 minutes, en cœurs utilisés en moyenne :
| Qui | Cœurs |
|---|---|
| La vision : trouver les visages et calculer les empreintes | 1,65 |
| La réception des images de la caméra, 30 par seconde, 1 280 × 720 | 0,16 |
| Le son, la direction du bruit, le reste | 0,14 |
| Non attribué | 0,13 |
| Mon programme, total | 2,08 |
| Le logiciel du fabricant, seul | 0,38 |
La vision mangeait presque tout. Et par image, moi dans le champ, le travail s’additionnait à environ 750 millisecondes de processeur.
Dans la machine
OpenCV, la bibliothèque de vision, répartit par défaut son travail sur les quatre cœurs. Ça a l’air plus rapide. Sur un petit processeur partagé avec d’autres programmes, c’est surtout plus cher. J’ai mesuré le temps de processeur par image avec quatre fils de calcul, puis avec un seul :
| Étape | 4 fils | 1 fil |
|---|---|---|
| Trouver les visages, 640 px | 232 ms | 160 ms |
| Affiner la boîte du visage | 135 ms | 88 ms |
| Calculer une empreinte | 387 ms | 323 ms |
Avec un seul fil, chaque étape coûte moins de processeur au total. Le travail est le même. Le surplus vient très probablement de la coordination de quatre fils, et de la concurrence avec les autres programmes pour les mêmes cœurs.
Il y avait un deuxième indice. En 112 minutes, le programme a traité 26 353 images, 3,9 par seconde. Sa consigne était de 6. Il ne l’a jamais atteinte, et sa boucle ne dormait jamais. Une boucle qui ne dort jamais prend tout ce qu’on lui donne.
Le changement
Un seul réglage : OpenCV sur un seul fil. Installé sur le robot à 21 h 07 :
| Mesure | Avant | Après |
|---|---|---|
| Mon programme | 2,41 cœurs | 1,24 cœur |
| Le robot entier, pendant que je dictais | 96 % | 73 % |
Ma réponse à la question du soir : le robot n’est pas saturé par son matériel, il est saturé par la façon dont je l’ai fait percevoir. Il calculait une empreinte à chaque image, et cherchait des visages à plein régime même quand rien ne se passait.
La suite
C’était le levier facile. Le vrai demandait de changer la façon dont le robot suit qui est en face de lui.

