Comment estimer la mémoire et la bande passante d'un VLA embarqué
Contrairement aux LLM purement textuels, un modèle VLA embarqué sur un robot traite à chaque inférence les tokens visuels de plusieurs caméras et produit des commandes articulaires continues (chunks d'actions). La mémoire augmente donc non seulement avec les poids, mais aussi avec le nombre de caméras, la résolution et la longueur de l'historique, et la vitesse d'inférence est généralement limitée par la bande passante mémoire.
1. Formules
Le calculateur suppose un contrôle robotique en temps réel avec une taille de lot de 1 et utilise les équations suivantes.
Total_Memory (GB) = Weights + KV_Activation_Buffer + System_Reserve (3.0 GB)
Weights (GB) = Params (B) × Bytes_per_Param
Vision_Tokens = Cameras × Tokens_per_Camera × History_Frames
Bytes_per_Pass (GB) ≈ Weights + 0.5 × KV_Activation_Buffer
Inference_Hz = Control_Hz ÷ Actions_Executed_per_Chunk
Required_Bandwidth (GB/s) = Bytes_per_Pass × Inference_Hz ÷ Efficiency
Max_Inference_Hz (per device) = Bandwidth × Efficiency ÷ Bytes_per_Pass
Bytes_per_Param vaut 2,0 en FP16, 1,0 en FP8, environ 1,05 en W8A16, environ 0,62 en W4A16 avec tête d'action FP16 et environ 0,56 en NVFP4 (un facteur d'échelle FP8 pour 16 valeurs). Le tampon KV/activations est une estimation empirique proportionnelle au nombre de tokens visuels et à la taille du modèle.
2. Pourquoi la bande passante mémoire fixe la fréquence d'inférence
Avec une taille de lot de 1, l'inférence bute souvent sur la bande passante mémoire avant la puissance de calcul, car chaque inférence doit relire l'ensemble des poids depuis la DRAM. La fréquence d'inférence maximale d'un appareil s'estime donc par bande passante × taux d'utilisation ÷ mémoire lue par inférence, et la quantification des poids améliore à la fois la capacité mémoire et ce plafond de vitesse.
3. Chunks d'actions et double boucle de contrôle
Les modèles qui utilisent des chunks d'actions produisent plusieurs pas d'actions par inférence, que le contrôleur exécute à une fréquence plus élevée. Par exemple, à 30 Hz de contrôle avec 10 pas exécutés par chunk, le modèle n'a besoin de tourner qu'à 3 Hz. Les humanoïdes qui exigent un contrôle du corps entier à plusieurs centaines de hertz utilisent généralement une double boucle : le VLA produit des objectifs à basse fréquence, une petite politique envoie les commandes articulaires à haute fréquence. Prévoyez aussi une réserve système pour les files ROS 2 et les tampons caméra (ce calculateur suppose 3 Go) afin que le robot ne s'arrête pas faute de mémoire.
4. Caractéristiques des calculateurs edge et configurations suggérées
La plupart des calculateurs embarqués de robots utilisent une mémoire unifiée partagée entre CPU et GPU (LPDDR). La mémoire, la bande passante et la consommation proviennent des pages produit officielles de NVIDIA ; les configurations suggérées sont des repères fondés sur les réglages par défaut de ce calculateur.
| Matériel | Mémoire unifiée | Bande passante mémoire | Plage de puissance | Configuration suggérée (repère) |
|---|---|---|---|---|
| NVIDIA Jetson Orin Nano Super (8GB) | 8 GB | 102 GB/s | 7–25 W | Politiques de moins de 1B comme Octo ou SmolVLA, ou une seule politique ACT ou Diffusion Policy |
| NVIDIA Jetson Orin NX 16GB | 16 GB | 102.4 GB/s | 10–40 W | Classe 3B (GR00T N1.7, π0) en W4A16 avec 2 à 3 caméras et chunks d'actions |
| NVIDIA Jetson AGX Orin 32GB | 32 GB | 204.8 GB/s | 15–40 W | Classe 3B en FP16 ou classe 7B en W4A16 avec environ 3 caméras |
| NVIDIA Jetson AGX Orin 64GB | 64 GB | 204.8 GB/s | 15–60 W | Classe 7B (OpenVLA) en FP16 ou FP8, ou classe 14B en W4A16 |
| NVIDIA Jetson T4000 (Thor, 64GB) | 64 GB | 273 GB/s | 40–70 W | Classe 7B en FP16 ou classe 14B en FP8 ; même bande passante que le T5000 |
| NVIDIA Jetson T5000 (Thor, 128GB) | 128 GB | 273 GB/s | 40–130 W | Grands VLA de 14B à 32B, ou VLA exécuté avec un modèle du monde |
5. Notes de dimensionnement par modèle
- Octo-Base (93M) et SmolVLA base (0.5B) : les poids pèsent environ 1 Go ou moins même en FP16. Ils tiennent sur une carte de 8 Go avec les réglages caméra par défaut et laissent une large marge de bande passante pour des fréquences de contrôle élevées.
- Isaac GR00T N1.7 (3B) et π0 (3.3B) : les poids FP16 représentent environ 6 à 7 Go. Le dépôt officiel de GR00T indique un GPU de la classe 16 Go pour l'inférence ; sur une carte de 16 Go, envisagez la quantification W4A16 avec les chunks d'actions.
- OpenVLA-7B : selon le dépôt officiel, l'inférence en bf16 demande environ 15 Go, ce qui ne tient pas sur une carte de 16 Go une fois le cache KV et la réserve ajoutés. Passez en W4A16 ou utilisez un AGX Orin 64GB ou plus. Comme le modèle produit ses actions sous forme de tokens, gardez un nombre d'actions par chunk proche de 1.
- Classe 14B à 32B : les poids FP16 occupent à eux seuls 28 à 64 Go. Un modèle de classe 32B en FP16 nécessite 128 Go (Jetson T5000) ; en W4A16, des cartes de 64 Go deviennent envisageables.
- Personnalisé : pour un modèle absent de la liste, saisissez son nombre de paramètres en incluant l'encodeur visuel et la tête d'action, afin de ne pas sous-estimer la mémoire.
6. Questions fréquentes
Q1. La quantification 4 bits (W4A16) dégrade-t-elle la précision du robot ?
L'article OpenVLA indique qu'un modèle servi en version quantifiée n'a pas perdu de taux de réussite notable dans son évaluation, mais ce résultat vaut pour ses conditions. Commencez par une précision mixte qui conserve la tête d'action continue en FP16, puis comparez les taux de réussite des versions FP16 et quantifiée sur votre propre tâche dans des conditions identiques.
Q2. Pourquoi le cache KV croît-il plus vite pour un VLA robotique que pour un LLM textuel ?
Un robot utilise généralement deux à quatre caméras en même temps, et chaque caméra produit des centaines de tokens visuels par image. Multiplié par le nombre d'images d'historique, une seule inférence peut garder des milliers de tokens en mémoire.
Q3. Puis-je utiliser un swap NVMe quand la mémoire manque ?
Pas pour une boucle de contrôle en temps réel. Dès que des poids ou le cache KV sont déplacés vers le SSD, des pics de latence de quelques dizaines à quelques centaines de millisecondes cassent la fréquence de contrôle et peuvent provoquer des mouvements saccadés ou une perte d'équilibre.
Q4. Comment les chunks d'actions réduisent-ils la bande passante nécessaire ?
Quand un modèle produit plusieurs pas d'actions d'un coup, l'inférence lourde n'a besoin de tourner qu'à une fraction de la fréquence de contrôle. Le calculateur le modélise par fréquence d'inférence = fréquence de contrôle ÷ actions exécutées par chunk, et la bande passante requise baisse dans la même proportion.
Q5. D'où vient le taux d'utilisation par défaut de 60 % ?
La bande passante officielle est un pic théorique rarement atteint en totalité pendant l'inférence ; 60 % sert donc d'hypothèse de départ prudente. Ce n'est pas une valeur mesurée : remplacez-la par une mesure sur votre appareil cible dès que possible.
Q6. Pourquoi les GPU RTX pour portables et de bureau ne figurent-ils pas dans la liste ?
La liste ne contient que les appareils dont la capacité mémoire et la bande passante ont pu être confirmées sur une page officielle. Pour un GPU dont la bande passante n'y est pas publiée, utilisez « Ajouter votre matériel » avec la donnée du fabricant ou votre propre mesure.
Articles liés sur Physical AI Portal (en anglais)
- Dimensionner la mémoire et la bande passante d'un modèle VLA embarqué
- Choisir un modèle de politique robotique ouvert : OpenVLA, Octo, π0, GR00T N1.7
- Choisir un module d'IA edge pour un robot : Jetson Orin, Thor et IGX Thor
- Comment fonctionnent les modèles VLA : RT-2, OpenVLA, π0 et GR00T N1 comparés
Sources primaires
- OpenVLA: An Open-Source Vision-Language-Action Model (arXiv:2406.09246)
- π0: A Vision-Language-Action Flow Model for General Robot Control (arXiv:2410.24164)
- NVIDIA Isaac GR00T (GitHub) · SmolVLA base (Hugging Face) · Octo
- NVIDIA Jetson Orin · NVIDIA Jetson Thor
- AWQ: Activation-aware Weight Quantization (arXiv:2306.00978)
Données et formules vérifiées le : 2026-10-21 · Exploitant : Huni ([email protected])