CUDA加速的火箭联盟RL模拟器:单卡RTX 4090训练20B步

开发者用CUDA将火箭联盟物理模拟搬上GPU,21小时完成相当于21年游戏时间的训练。
CARL是一个将《火箭联盟》物理模拟完全移植到GPU的开源项目,核心思路是把所有模拟状态保留在显存中,消除host-device传输开销,支持数千个环境并行运行。在单张RTX 4090上,使用8192个并行环境、frameskip=4,约20B决策步(80B物理tick,约21年游戏时间)仅用21小时完成训练。训练出的机器人可无缝迁移到真实游戏,物理表现基本一致,但系统的物理一致性评估尚不完整。项目受PureJaxRL启发,目前功能完整并已开源,后续计划加入训练包API、基准测试和JAX/TensorFlow集成,为强化学习训练提供了一种当环境模拟成为瓶颈时把物理逻辑搬上GPU的实用思路。
强化学习训练中最耗时的环节往往不是模型计算,而是环境模拟。一位开发者花了近两年时间,将《火箭联盟》的物理模拟完整移植到GPU上运行,用CUDA实现了大规模并行环境,让训练效率有了数量级的提升。

CARL是什么?把火箭联盟物理搬进CUDA
这个项目叫CARL(CUDA-Accelerated Rocket League),核心思路是把所有模拟状态信息保留在GPU显存中,训练过程中完全消除了主机与设备之间的数据传输开销。开发者受到PureJaxRL的启发——PureJaxRL曾在JAX上实现了类似的大规模并行环境方案——决定为火箭联盟这个自己感兴趣的任务构建专属的GPU并行环境。
此前社区已有RocketSim,一个高性能的CPU模拟器,已集成进RLGym用于强化学习训练。CARL并非要取代RocketSim,而是探索另一条路径:利用CUDA在GPU上并行运行物理逻辑,让数千局游戏同时推进。据开发者描述,他的机器人在CARL上训练后可以无缝迁移到真实游戏中,物理表现基本一致。
CUDA(Compute Unified Device Architecture)是 NVIDIA 推出的通用并行计算平台和编程模型,允许开发者直接调用 GPU 的数千个核心来执行非图形计算任务。在强化学习中,环境模拟通常由 CPU 串行执行,而 CUDA 让每个线程独立负责一个环境实例,从而把数千局游戏同时推进。host-device 传输指 CPU(host)与 GPU(device)之间的数据拷贝,通过 PCIe 总线进行,带宽远低于 GPU 显存。当并行环境数量增加时,每步模拟都需同步观测、动作和奖励,传输开销会迅速成为瓶颈。CARL 把所有状态保留在显存中,正是为了彻底消除这一开销。
性能数据:21小时跑完相当于21年的游戏时间
开发者公布了一组训练数据,足以说明这套方案的效率。在单张RTX 4090上,使用8192个并行环境、frameskip=4进行训练,约20B决策步(对应80B物理tick,换算成游戏时间约21年)仅用了21小时出头的实际时间。
从训练曲线可以看到,机器人在空中控制能力上有明显提升。开发者还附上了一段能力演示视频,展示了训练后机器人在空中的操控水平。不过他也自嘲说,如果自己亲自操作,可能一个微弱操作就能救回来——言下之意,机器人的表现虽然不错,但离人类高手还有距离。
这种效率提升的关键在于消除了host-device传输瓶颈。传统CPU模拟器每步都需要在CPU和GPU之间同步数据,当并行环境数量增加时,这一开销会成为主要瓶颈。CARL把所有状态留在GPU上,让数千个环境真正并行运转。
frameskip 是强化学习环境中的常见参数,表示智能体每执行一次决策动作,底层物理引擎实际推进的仿真步数。例如 frameskip=4 时,机器人每做出一个动作,物理世界会连续运行 4 个 tick 才返回下一帧观测。这样做既能降低决策频率、缩短训练序列长度,又能让物理模拟保持较高精度。因此文中 20B 决策步对应 80B 物理 tick,正是 frameskip=4 的直接结果。选择合适的 frameskip 是训练效率与策略质量之间的关键权衡:过大会让机器人丢失精细控制能力,过小则训练成本急剧上升。
项目状态与后续计划
开发者表示CARL目前已经“功能完整”,决定开源给社区看看反馈。他也坦言自己在GPU编程和优化方面学到了很多,但还有很多需要继续学习的地方,欢迎社区提供建议。
接下来的TODO列表包括:
- 内置训练包API,用于针对性训练
- 速度和物理一致性基准测试
- 补充测试和其他工程最佳实践
- 探索JAX和TensorFlow集成
说个细节,物理一致性(parity)的评估目前还比较初步。开发者说机器人能无缝迁移到真实游戏,这是一个强信号,但更系统的对比工作还没完成。
JAX 是 Google 开发的高性能数值计算库,支持自动微分、向量化和 JIT 编译,能在 GPU/TPU 上高效运行。PureJaxRL 是建立在 JAX 上的强化学习库,其核心特点是用纯函数式方式实现端到端训练,使整个训练循环都可被 JIT 编译并大规模并行化,无需 CPU 与 GPU 频繁交互。CARL 受其启发,但选择了 CUDA 手写物理内核的路线,因为火箭联盟的物理逻辑较为复杂,用 JAX 表达可能存在性能或灵活性限制。集成 JAX/TensorFlow 意味着未来用户可以在这些框架中直接调用 CARL 环境,从而复用现有的训练算法生态。
社区反响与意义
这个项目在Reddit上发布后引起了不少关注。大规模并行环境是当前强化学习研究的一个重要方向,PureJaxRL、Isaac Gym等工作都在推动这一趋势。CARL的价值在于把这一思路带到了一个具体的、有挑战性的游戏任务上,并且验证了从GPU模拟到真实游戏的无缝迁移。
对于做强化学习训练的研究者和工程师来说,CARL提供了一种思路:当环境模拟成为瓶颈时,把物理逻辑搬到GPU上并行执行,可能比优化模型本身带来更大的收益。当然,这种方案也有其适用范围——需要物理逻辑足够简洁、能高效并行化,并且任务本身适合大规模环境采样。
开发者计划后续发布更多演示,随着功能完善,CARL可能会成为火箭联盟RL训练的一个有力工具。
相关推荐

AI数字分身实战:用DOT自动追踪Bug与用户反馈
DOTS 团队工程师演示如何用 AI 数字分身 DOT 跨平台收集用户反馈、自动归类问题主题、开线程调查 Bug 根因并直接提交 PR,展示 AI 代理参与缺陷分诊的完整工作流与可审计设计。

晶体管为何不再扁平?从平面到环绕栅极的演进
晶体管从平面到FinFET再到环绕栅极的演进:为何栅极需要从三面包裹到四面环绕,以抑制短沟道效应和泄漏电流,延续摩尔定律。

蜂群思维=单个RL智能体?多臂老虎机等价性证明
一篇论文证明蜂群通过局部模仿进行的集体决策,在数学上等价于单智能体强化学习。N个盲目模仿者相当于N个并行环境采样,有效学习率为1/N。本文解读Maynard-Cross Learning算法的推导与影响。