news 2026/10/20 2:51:55

ManiSkill 机器人仿真实战:3 步跑通 GPU 并行,把单张 4090 拉满

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ManiSkill 机器人仿真实战:3 步跑通 GPU 并行,把单张 4090 拉满

ManiSkill 机器人仿真实战:3 步跑通 GPU 并行,把单张 4090 拉满

【免费下载链接】ManiSkillManipulation Skill Framework, an open source GPU parallelized robotics simulator and benchmark项目地址: https://gitcode.com/GitHub_Trending/ma/ManiSkill

ManiSkill 是一个 GPU 并行的机器人仿真平台,基于 SAPIEN 物理引擎,一行gym.make就能把上千个抓取任务同时跑起来,适合做强化学习、模仿学习算法评测和视觉数据生成。

⚡ 5 分钟跑起来:部署 + 第一个并行任务

部署很轻,装完就能跑,不用单独配物理引擎:

git clone https://gitcode.com/GitHub_Trending/ma/ManiSkill # 克隆仓库 cd ManiSkill && pip install -e . # 可编辑安装,自动带上 SAPIEN 依赖

装好后用 64 个并行环境验证安装是否成功,所有返回都是 batched 的 torch 张量:

import gymnasium as gym import mani_skill.envs env = gym.make("PickCube-v1", num_envs=64, obs_mode="state") # 64 个 GPU 并行环境 obs, _ = env.reset(seed=0) obs, reward, *_ = env.step(env.action_space.sample()) # 随机动作走一步,看 reward.shape

想知道这张卡到底能跑多快,直接跑官方基准脚本mani_skill/examples/benchmarking/gpu_sim.py,结束时会打印 FPS、PSPS 和显存占用:

python -m mani_skill.examples.benchmarking.gpu_sim --num-envs=1024 -e CartpoleBalanceBenchmark-v1 # 输出 FPS/PSPS/显存

📊 看懂 FPS 和 PSPS:显存档位对照表

跑完基准脚本你会看到两个速度数字,别搞混:

  • FPS:所有并行环境每秒走完的步数总和,数字好看但只是"总量"
  • PSPS:每秒能完整跑多少"轮"(每轮 = 全部环境各走一步),训练吞吐量真正看它
  • 显存:随并行数近似线性增长,和 FPS 无关——所以并行数定多少,先看显存档位

下表按显存档位给出"大概能开多少环境"(RTX 4090 上 Cartpole 任务实测,state 观测 + 640×480 单目 RGB 两组):

显存档位状态观测能开多少并行环境640×480 单目相机能开多少满载时显存大概多少
8 GB 卡约 500约 256state ≈6.5 GB / RGB ≈5.5 GB
12 GB 卡约 1024约 512state ≈10.9 GB / RGB ≈8.6 GB
24 GB(4090 实测)2048+1024+三目 320×180 相机 @1024 ≈11.5 GB

注意两点:观测越"重"(RGB+depth 比 state 慢、相机越多越费显存),能开的并行数就越少;任务网格越复杂(比如装配类),速度会比 Cartpole 低一截,下表是上限参考。

🔧 慢了就查这里

显存爆了:先砍并行数,再砍相机

现象:训练中途报 CUDA out of memory,进程直接挂掉。原因:num_envs开太大,或者相机数量和分辨率太高,显存随并行数线性上涨。动作:

  • 先把--num-envs砍到 1/4
  • --cam-width=128压低分辨率
  • 关掉同卡上其他吃显存的进程

步速越跑越慢:确认是不是没开推理模式

现象:实测速度明显低于基准脚本的数字。原因:训练循环没包torch.inference_mode(),autograd 在白白记录计算图,循环里还有同步操作。动作:

  • 循环外套torch.inference_mode()
  • 循环里别频繁.item()或 print
  • 张量保持 torch 格式,不做 numpy 往返

刚启动特别卡:前几百步是预热

现象:头 100 步很慢,之后才稳定。原因:着色器编译、CUDA 上下文初始化和物理引擎预热都发生在启动阶段。动作:

  • 预热 100~200 步再计时
  • 计时前再reset()一次
  • 直接用基准脚本,它自带预热

物体穿透或乱飞:物理步长太粗

现象:高速碰撞时物体互相穿透,reward 出现 NaN。原因:sim_freq偏低,单步物理推进距离过大。动作:

  • sim_freq=120提到 240
  • 调低control_freq拉长单步间隔
  • 减小单步动作幅度

进阶玩法:并行数、换机器人、接 SB3

GPU 并行数怎么定:先看显存档位表定上限,再用num_envs=1024、sim_freq=120、control_freq=60这组默认值跑基准,FPS 和 PSPS 都满意就定下来。视觉任务把相机降到 128×128 往往比加并行数更划算。

同一个任务换机器人:很多任务支持robot_uids参数,比如gym.make("PickCube-v1", robot_uids="fetch")把 WidowX 换成 Fetch,多机器人任务可以传元组robot_uids=("panda", "fetch")。任务库从桌面抓取到 ManiSkill-HAB 厨房数字孪生都有,装好资产直接换 env_id 就能跑:

16 路并行同屏看:加parallel_in_single_scene=True再开render_mode="human",能把 16 个并行环境渲染进同一个 GUI 里,配shader_pack="rt-fast"还能上光追,适合录 demo 视频。

直接接主流 RL 框架:仓库里mani_skill/examples/baselines/stable_baselines3/有现成样例,把环境包成标准 VectorEnv 就能喂给 SB3 的 PPO/SAC;RL 和 IL 的完整接入步骤在docs/source/user_guide/reinforcement_learning/setup.md里。

避坑清单

  • 并行环境数 ≤ 显存安全上限(对照上面档位表留 10% 余量)
  • num_envs大于 1 才真正进入 GPU 仿真
  • 无显示器的服务器上别用render_mode="human"
  • 缺资产的任务先python -m mani_skill.utils.download_asset <ENV_ID>
  • 开训前用nvidia-smi确认显存占用

并行数、相机分辨率、推理模式这三处调完,单张 4090 跑 state 观测可以稳定过万 FPS,环境还能原样接进 SB3 和 SB3 之外的训练循环。完整任务列表、传感器和控制器参考在仓库docs/source/user_guide/下,社区入口和发布信息看顶层README.md。

【免费下载链接】ManiSkillManipulation Skill Framework, an open source GPU parallelized robotics simulator and benchmark项目地址: https://gitcode.com/GitHub_Trending/ma/ManiSkill

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/20 2:51:11

基于YOLOv12的安全帽佩戴检测系统:从数据准备到模型部署全流程

安全帽佩戴检测这种项目&#xff0c;说实话在工业安全领域已经不算新鲜了&#xff0c;安全帽数据集和训练代码在各大开源平台上一抓一大把。但YOLOv12版本的加入&#xff0c;让这个老场景重新有了可聊的深度——毕竟从YOLOv5到YOLOv8再到v11、v12&#xff0c;模型结构的每一次迭…

作者头像 李华
网站建设 2026/10/20 2:50:37

基于三维重构与微动作识别的矿工无感定位系统详解

我自己在矿山场景里折腾人员定位已经不是一两年了&#xff0c;从最早的传统标签式定位做到后来纯视频视觉方案&#xff0c;这中间踩过的坑比写出来的文档多得多。这次要聊的这套“基于三维重构与微动作识别的矿工无感定位系统”&#xff0c;本质上就是把矿山已有的视频监控资源…

作者头像 李华
网站建设 2026/10/20 2:50:18

Ubuntu下Qt Creator编译失败的常见原因与排查方法

在 Ubuntu 上装好 Qt Creator&#xff0c;新建或打开一个项目&#xff0c;点击左下角的绿色三角&#xff0c;下一秒就给你弹出一屏红色报错——这事我遇过太多次了。尤其是在刚装好系统的机器上&#xff0c;Qt Creator 项目编译失败几乎成了新环境里的“保留节目”&#xff0c;…

作者头像 李华
网站建设 2026/10/20 2:50:13

AI辅助编程实战:Vibe Coding加速原型开发与验证

前阵子在某个开源学习社区的直播活动里&#xff0c;主题是“Vibe coding 动手做出原型”——一个听着酷炫、实操却充满误解的词。屏幕上的弹幕一半人跃跃欲试&#xff0c;另一半人带着疑虑&#xff1a;“让AI写代码&#xff0c;自己只负责看效果&#xff0c;这样真的能叫写程序…

作者头像 李华
网站建设 2026/10/20 2:50:11

基于NSGA-II与Maxwell的电磁执行机构多目标结构优化

我手头这个项目是做一款电磁执行机构的结构优化&#xff0c;尺寸参数一共五个&#xff1a;永磁体厚度、气隙长度、线圈匝数、齿宽和磁轭厚度。三个性能指标天生互斥&#xff0c;气隙磁密要拉高、总质量要压低、磁密波动还要小。刚开始我用最原始的手动调参&#xff0c;一天最多…

作者头像 李华
网站建设 2026/10/20 2:49:34

从关键词匹配到意图响应:AI驱动搜索优化的新方法论

这两年做搜索流量的人&#xff0c;应该都有一个很明显的感受——以前靠几个关键词就能吃一年的日子&#xff0c;已经越来越远了。搜索平台的算法越来越“聪明”&#xff0c;用户提问的方式也越来越口语化、碎片化&#xff0c;而偏偏我们手里的工具还是那老一套&#xff1a;给个…

作者头像 李华