仿真后端¶
当前 tensor-only Manager runtime 暴露 mujoco、mjwarp、genesis、
newton、motrix、superdex、scoped Drake owner,以及下文描述的显式
external-worker Isaac owner。用户命令通过 --sim 选择后端,并组合对应的
task owner YAML;不要单独覆盖 training.sim_backend。
Runtime 前置条件¶
任何使用
--sim mujoco、MuJoCo 回放或 MuJoCo 专属调试工具的运行,都需要mujocoextra 及其钉住的mjbatchruntime。MJWarp 需要
mjwarpextra、NVIDIA CUDA;多 GPU 主机必须显式配置 process-device topology。Genesis 需要
genesisextra 以及已验证的 Linux x86_64 GPU 路径。Newton 需要
newtonextra 与 NVIDIA CUDA 设备;当前 tensor-native 支持范围 为 SACg1_walk_flat和 FlashSACg1_motion_tracking。Motrix 需要
motrixextra,提供 CPU-authoritative packed HOST_BRIDGE;当前 canonical 支持范围为 SACg1_walk_flat和 FlashSACg1_motion_tracking。SuperDex 在 CPython 3.12/3.13 Linux x86_64 上需要
superdexextra,提供 CPU-authoritative packed HOST_BRIDGE;当前范围为 Go2 configured research owner。Drake 需要本地编译的 DrakeUni batch extension。其 scoped PPO
go2_joystick_flatowner 使用 CPU physics 与 packed HOST_BRIDGE lifecycle;在 backend contract 补齐前,浮动根重置与 reset randomization 事件保持禁用。IsaacGym 与 IsaacSim 分别需要隔离的 Python 3.8 / Python 3.11 worker 以及 同 GPU CUDA IPC。它们是显式 owner 选择,不会成为隐式 fallback 后端。
OS 与 GPU 支持¶
后端 |
操作系统 |
GPU |
|---|---|---|
MuJoCo |
Linux / macOS / Windows |
不要求:CPU physics;离线回放可在 CPU 渲染 |
MJWarp |
Linux(已验证路径) |
要求:NVIDIA CUDA;单 GPU 主机默认使用当前 CUDA 设备 |
Genesis |
Linux x86_64 |
要求:NVIDIA GPU 与 driver;仅验证 |
Newton |
Linux |
要求:NVIDIA CUDA;selected-reset 通道为 device-resident |
Motrix |
Linux / macOS / Windows |
CPU-authoritative physics;Torch CUDA buffer 可选 |
SuperDex |
Linux x86_64(CPython 3.12/3.13) |
CPU-authoritative physics;Torch CUDA buffer 可选 |
Drake |
Linux x86_64 / Apple Silicon macOS |
CPU-authoritative physics;Torch CUDA buffer 可选 |
IsaacGym |
Linux |
要求:外部 Python 3.8 worker 与 NVIDIA CUDA |
IsaacSim |
Linux |
要求:外部 Python 3.11 IsaacLab worker 与 NVIDIA CUDA |
后端设备要求与 learner 设备独立:MuJoCo 仍可以让 learner 使用 CUDA、ROCm、MPS 或 XPU。平台配置见 安装。
选择后端¶
UniLab 通过 task owner config 选择仿真后端。常规用法通过 --task 与 --sim
选择;off-policy 命令中的算法保留在 --algo,不放在 --task。
快速选择¶
需求 |
优先选择 |
|---|---|
默认路径或 owner 覆盖最广 |
MuJoCo |
|
MuJoCo |
Device-resident tensor owner |
MJWarp、Genesis 或 Newton,且支持矩阵标记该组合为 supported |
CPU-authoritative packed HOST_BRIDGE |
Motrix;SuperDex 或 scoped Drake 的 configured research owner |
支持矩阵由 registry、owner YAML 与测试生成;当前证据源见 后端支持矩阵。
uv run train --algo ppo --task go2_joystick_flat --sim mujoco
uv run train --algo sac --task g1_motion_tracking --sim mjwarp
Owner YAML 位置:
PPO / APPO:
src/unilab/conf/{ppo,appo}/task/<task>/<backend>.yamlOff-policy(SAC / FlashSAC):
src/unilab/conf/<algo>/task/<task>/<backend>.yaml
选中的 owner YAML 会将 training.sim_backend 作为 identity field。
回放差异¶
--render-mode auto在 MuJoCo 路径导出play_video.mp4。--render-mode record录制但不打开交互窗口。--render-mode viser在支持 physics-state playback 的后端(MuJoCo 与 MJWarp) 中启动浏览器 viser viewer。--render-mode none禁用回放。
uv run eval --algo ppo --task go2_joystick_flat --sim mujoco --load-run -1
支持证据¶
Task/backend/entrypoint 支持等级按证据分级。见 后端支持矩阵。
相关契约¶
unisim-core 边界¶
UniLab 的物理后端由独立的 unisim-core 发行版提供,Python namespace 为
unisim。例如:
uv sync --extra mujoco
uv run python -c "import unisim; print(unisim.ADAPTER_SPECS)"
unisim 不依赖 UniLab、Hydra 或训练组件。scoped
MuJoCo/MJWarp/Genesis/Newton/Motrix/SuperDex 适配器与暂时搁置的适配器使用同一个
public contract。缺失 proprietary SDK 或 GPU worker 时会产生明确的
cold-path diagnostic;不会静默切换到另一个引擎。