# AMD ROCm 环境配置说明 这份文档记录了在 AMD ROCm 环境下运行 LeWM 的可复现配置,重点是保留 `torch.compile` 时的 PyTorch 版本选择。 目标运行命令: ```bash python eval.py --config-name=pusht.yaml policy=pusht/lewm ``` ## 已验证环境 本次验证通过的环境: - Ubuntu 24.04 - AMD Radeon PRO W7900D (`gfx1100`) - 系统 ROCm 7.1.1 - Python 3.10 - `torch==2.10.0+rocm7.1` - `torchvision==0.25.0+rocm7.1` - `triton-rocm==3.6.0` 注意:`torch==2.12.0+rocm7.1` 可以正常导入,也能识别 GPU,但在本项目里开启 `torch.compile` 后会崩溃,错误类似: ```text HSA_STATUS_ERROR_INVALID_PACKET_FORMAT CUDA error: unspecified launch failure ``` 降级到 `torch==2.10.0+rocm7.1` 后,`torch.compile` 路径可以正常跑通。 ## 检查系统 ROCm 在新 AMD 机器上,先确认系统能识别 GPU: ```bash rocminfo amd-smi version hipcc --version ``` `rocminfo` 里应该能看到 AMD GPU agent,例如 `gfx1100`。 ## 创建 Python 环境 使用 `uv` 创建 Python 3.10 虚拟环境: ```bash cd /path/to/lewm uv venv --python 3.10 --allow-existing .venv source .venv/bin/activate ``` 给 uv 创建的 venv 补上 pip。ROCm 版 PyTorch wheel 很大,如果 uv 解析或下载卡住, 用 pip 安装大 wheel 更容易观察进度。 ```bash uv pip install pip ``` ## 安装 ROCm 版 PyTorch 安装本项目已验证可用的 ROCm PyTorch 组合: ```bash python -m pip install --force-reinstall \ --index-url https://download.pytorch.org/whl/rocm7.1 \ --extra-index-url https://pypi.tuna.tsinghua.edu.cn/simple \ "torch==2.10.0" \ "torchvision==0.25.0" ``` PyTorch wheel 有数 GB。如果网络慢,不要频繁中断重试,尽量等它下载完成。 ## 安装项目依赖 普通 Python 包建议走国内 PyPI 镜像: ```bash python -m pip install \ --index-url https://pypi.tuna.tsinghua.edu.cn/simple \ "gymnasium[all]==1.2.2" \ "stable-baselines3==2.8.0" \ "stable-worldmodel[train,env]" ``` 然后修正两个容易被 pip 带偏的依赖版本: ```bash python -m pip install \ --index-url https://pypi.tuna.tsinghua.edu.cn/simple \ "fsspec==2025.3.0" \ "pillow==11.3.0" ``` 检查环境: ```bash python -m pip check python - <<'PY' import torch import torchvision print("torch:", torch.__version__) print("hip:", torch.version.hip) print("cuda available:", torch.cuda.is_available()) print("device:", torch.cuda.get_device_name(0) if torch.cuda.is_available() else None) print("torchvision:", torchvision.__version__) PY ``` 期望看到类似输出: ```text torch: 2.10.0+rocm7.1 cuda available: True torchvision: 0.25.0+rocm7.1 ``` ## 恢复本仓库里的 stable-worldmodel 修改 这个仓库把一些本地修改后的 `stable_worldmodel` 文件纳入了 git 管控,路径在: ```text .venv/lib/python3.10/site-packages/stable_worldmodel/ ``` 从 PyPI 安装 `stable-worldmodel` 时可能会覆盖这些文件。安装依赖后执行: ```bash git restore -- \ .venv/lib/python3.10/site-packages/stable_worldmodel/policy.py \ .venv/lib/python3.10/site-packages/stable_worldmodel/world.py \ .venv/lib/python3.10/site-packages/stable_worldmodel/solver/cem.py \ .venv/lib/python3.10/site-packages/stable_worldmodel/solver/gd.py ``` 然后确认没有意外修改: ```bash git status --short ``` ## 数据和 checkpoint 路径 `eval.py` 会从 `$STABLEWM_HOME` 里找数据和 checkpoint。 PushT 评估至少需要: ```text $STABLEWM_HOME/pusht_expert_train.h5 $STABLEWM_HOME/pusht/lewm_object.ckpt ``` 例如本机使用: ```bash export STABLEWM_HOME=/mnt/ASC1637/stablewm ``` 如果没有正确设置,运行时会报找不到 `pusht_expert_train.h5`。 ## 运行评估 默认 PushT 评估,保留 `torch.compile`: ```bash export STABLEWM_HOME=/path/to/stablewm python eval.py --config-name=pusht.yaml policy=pusht/lewm ``` 快速 smoke test: ```bash export STABLEWM_HOME=/path/to/stablewm python eval.py --config-name=pusht.yaml policy=pusht/lewm \ eval.num_eval=1 \ world.num_envs=1 \ output.filename=/tmp/lewm_smoke_test.txt ``` smoke test 应该能正常结束,并打印类似: ```text {'success_rate': 100.0, ...} ``` ## 常见问题 ### `HSA_STATUS_ERROR_INVALID_PACKET_FORMAT` 如果开启 `torch.compile` 时出现这个错误,先检查 torch 版本: ```bash python -c "import torch; print(torch.__version__, torch.version.hip)" ``` 如果是 `2.12.0+rocm7.1`,建议降级到本项目验证通过的组合: ```bash python -m pip install --force-reinstall \ --index-url https://download.pytorch.org/whl/rocm7.1 \ --extra-index-url https://pypi.tuna.tsinghua.edu.cn/simple \ "torch==2.10.0" \ "torchvision==0.25.0" ``` ### 找不到 `pusht_expert_train.h5` 设置 `STABLEWM_HOME` 到包含数据和 checkpoint 的目录: ```bash export STABLEWM_HOME=/path/to/stablewm ``` ### pip 尝试构建旧版 `gym==0.21` 这是依赖解析回退导致的。先显式安装兼容版本: ```bash python -m pip install \ --index-url https://pypi.tuna.tsinghua.edu.cn/simple \ "gymnasium[all]==1.2.2" \ "stable-baselines3==2.8.0" ``` ### uv 或 pip 访问海外源很慢 普通 Python 包使用国内 PyPI 镜像: ```bash --index-url https://pypi.tuna.tsinghua.edu.cn/simple ``` PyTorch ROCm wheel 继续使用 PyTorch 官方 ROCm 源: ```bash --index-url https://download.pytorch.org/whl/rocm7.1 ```