最佳实践#
Genesis World 中的强化学习会在单张 GPU 上并行运行数千个环境。在这种规模下,训练能否成功主要取决于两件事:每次 env.step() 跑得多快,以及策略能否泛化到它所见过的那组确切条件之外。环境代码位于关键路径上,因此每一次主机与设备之间的传输、每一次缓冲区重新分配,以及步进循环中的每一个 Python 侧分支,都会损耗吞吐量,而这些损耗是再多 GPU 算力也补不回来的。
编写高效的 RL 环境: 借助预分配缓冲区、布尔掩码形式的
envs_idx以及零拷贝状态访问器,让env.step()全程不触发 GPU 同步。域随机化: 在各个环境之间随机化物理与视觉属性,使训练出的策略具备泛化能力,而不是过拟合到某一种配置。