sail-sg/envpool
C++-based high-performance parallel environment execution engine (vectorized env) for general RL environments.
解决的问题
EnvPool 解决了强化学习(RL)环境并行化相关的性能瓶颈。传统的基于 Python 子进程的向量环境通常存在高开销,限制了经验收集的吞吐量。EnvPool 提供了一个高性能的 C++ 基础执行引擎,显著提升了训练过程中每秒可处理的帧数或步数。
工作原理
EnvPool 使用 C++ 实现,并通过 pybind11 提供 Python 接口。它管理一个环境池,并利用线程池并行执行环境。支持同步执行(用户等待所有环境完成步进)和异步执行(使用 send 和 recv 函数在环境完成时与其交互)。
适用人群
专为需要在 Atari、MuJoCo 等多种环境中快速生成大量训练数据的 RL 研究人员和开发者设计,可作为标准 Gymnasium 或 DeepMind dm_env API 的即插即用替代方案。
主要亮点
- 极致吞吐量:在高端硬件(DGX-A100)上,每秒可处理 100 万帧 Atari 游戏或 300 万步 MuJoCo 模拟。
- 广泛环境支持:集成多种环境,包括 Atari、MuJoCo、Box2D、Procgen 和 Google Research Football。
- API 兼容性:完全兼容 Gymnasium 和
dm_envAPI,可轻松集成到 Stable-Baselines3、Tianshou、CleanRL 等库中。 - 跨平台支持:支持 Linux、macOS 和 Windows。
- 高级渲染功能:内置批量 RGB 输出和人类显示模式,支持 MuJoCo 的原生 C++ 像素观测。
相关
- 项目
- 项目
- 项目
- 项目
- Dispatch