如何估算端侧 VLA 的内存与带宽
与纯文本 LLM 不同,机器人上的 VLA 模型每次推理都要处理多个摄像头的视觉 token,并输出连续的关节指令(动作分块)。因此内存不仅随权重增长,还随摄像头数量、分辨率和历史长度增长,而推理速度通常受内存带宽限制。
1. 计算公式
本计算器以批大小为 1 的实时机器人控制为前提,使用以下公式。
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:FP16 为 2.0,FP8 为 1.0,W8A16 约 1.05,W4A16 + FP16 动作头约 0.62,NVFP4 约 0.56(每 16 个值配 1 个 FP8 缩放因子)。KV/激活缓冲按与视觉 token 数和模型规模成正比的经验公式估算。
2. 为什么内存带宽决定推理频率
批大小为 1 的推理往往先受限于内存带宽而不是算力,因为每次推理都要从 DRAM 重新读取全部权重。因此,设备的最大推理频率可近似为“带宽 × 利用率 ÷ 每次推理的读取量”,而通过量化减少权重可以同时改善内存容量和速度上限。
3. 动作分块与双回路控制
使用动作分块的模型一次推理生成多步动作,再由控制器以更高频率执行。例如在 30Hz 控制下每个分块执行 10 步,模型只需以 3Hz 推理。需要数百赫兹全身控制的人形机器人通常采用双回路:VLA 以低频生成目标,小型策略以高频输出关节指令。还应为 ROS 2 消息队列和摄像头缓冲保留系统内存(本计算器假设 3GB),以免机器人因内存不足而停机。
4. 边缘 AI 计算机规格与建议配置
大多数机器人板载计算机采用 CPU 与 GPU 共享同一 LPDDR 内存的统一内存架构。下表中的内存、带宽和功耗来自 NVIDIA 官方产品页面,建议配置是基于本计算器默认设置的参考值。
| 硬件 | 统一内存 | 内存带宽 | 功耗范围 | 建议配置(参考) |
|---|---|---|---|---|
| NVIDIA Jetson Orin Nano Super (8GB) | 8 GB | 102 GB/s | 7–25 W | Octo、SmolVLA 等 1B 以下策略,或单个 ACT/Diffusion Policy |
| NVIDIA Jetson Orin NX 16GB | 16 GB | 102.4 GB/s | 10–40 W | 3B 级(GR00T N1.7、π0)W4A16,2~3 个摄像头,使用动作分块 |
| NVIDIA Jetson AGX Orin 32GB | 32 GB | 204.8 GB/s | 15–40 W | 3B 级 FP16 或 7B 级 W4A16,约 3 个摄像头 |
| NVIDIA Jetson AGX Orin 64GB | 64 GB | 204.8 GB/s | 15–60 W | 7B 级(OpenVLA)FP16/FP8,或 14B 级 W4A16 |
| NVIDIA Jetson T4000 (Thor, 64GB) | 64 GB | 273 GB/s | 40–70 W | 7B 级 FP16 或 14B 级 FP8;带宽与 T5000 相同 |
| NVIDIA Jetson T5000 (Thor, 128GB) | 128 GB | 273 GB/s | 40–130 W | 14B~32B 级大型 VLA,或与世界模型同时运行 |
5. 各模型的规模说明
- Octo-Base (93M)、SmolVLA base (0.5B):即使 FP16 权重也只有约 1GB,默认摄像头设置下也能放进 8GB 开发板,带宽余量大,适合高控制频率。
- Isaac GR00T N1.7 (3B)、π0 (3.3B):FP16 权重约 6~7GB。GR00T 官方仓库建议推理使用 16GB 级 GPU 显存,因此在 16GB 开发板上请同时考虑 W4A16 等量化与动作分块。
- OpenVLA-7B:根据官方仓库,bf16 推理约需 15GB,加上 KV 缓存和预留后 16GB 开发板不够用。请使用 W4A16 压缩,或改用 AGX Orin 64GB 及以上。由于它以 token 形式输出动作,每个分块执行数设为接近 1 更符合实际。
- 14B~32B 级:仅 FP16 权重就有 28~64GB。以 FP16 运行 32B 级模型需要 128GB(Jetson T5000);使用 W4A16 后可考虑 64GB 开发板。
- 自定义:列表中没有的模型请直接输入参数量。务必填入包含视觉编码器和动作头在内的总参数量,否则内存会被低估。
6. 常见问题
Q1. 4 位(W4A16)量化会降低机器人动作精度吗?
OpenVLA 论文报告称,量化后部署在其评测任务中成功率没有明显下降,但这只是该条件下的结果。建议优先采用将输出连续关节值的动作头保持为 FP16 的混合精度,并在自己的任务中以相同条件比较 FP16 与量化版本的成功率。
Q2. 为什么机器人 VLA 的 KV 缓存比文本 LLM 增长更快?
机器人通常同时使用 2~4 个摄像头,每个摄像头每帧会产生数百个视觉 token。再乘以历史帧数,单次推理就可能在内存中保留数千个 token。
Q3. 内存不足时可以使用 NVMe 交换空间吗?
实时控制回路不建议这样做。一旦权重或 KV 缓存被换出到 SSD,就会出现数十到数百毫秒的延迟尖峰,破坏控制周期,可能导致机械臂抖动或失去平衡。
Q4. 动作分块如何降低所需带宽?
当模型一次生成多步动作时,繁重的推理只需以远低于控制频率的周期运行。本计算器将其表示为“推理频率 = 控制频率 ÷ 每个分块执行的动作数”,所需带宽也按同样比例下降。
Q5. 有效带宽利用率默认 60% 的依据是什么?
官方带宽是理论峰值,实际推理很少能全部用到,因此以 60% 作为保守的起点假设。它不是实测值;如有目标设备上的实测值,请替换后再计算。
Q6. 为什么列表中没有 RTX 笔记本和台式机 GPU?
列表只收录在官方页面上能同时确认内存容量和带宽的设备。官方页面未公布带宽的 GPU,请在“添加自己的硬件”中填入厂商规格或实测值进行比较。
Physical AI Portal 相关文章(英文)
参考的一手资料
- 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)
数据与公式最后核对日期:2026-10-21 · 运营者:Huni ([email protected])