|
| 1 | +# SimplerEnv WidowX Bridge Eval |
| 2 | + |
| 3 | +This directory evaluates the robot.cpp StarVLA GGUF runtime on the SimplerEnv |
| 4 | +WidowX Bridge tasks. |
| 5 | + |
| 6 | +## Protocol |
| 7 | + |
| 8 | +- Four Bridge tasks with object episodes `0..23` |
| 9 | +- At most 120 steps per episode at 5 Hz |
| 10 | +- Visual-matching RGB overlay resized to 224x224 with OpenCV `INTER_AREA` |
| 11 | +- One action chunk per step with the official seven-prediction adaptive ensemble |
| 12 | + |
| 13 | +A full run contains 96 rollouts. The result reports overall and per-task success |
| 14 | +rates; subset runs use `partial` coverage. |
| 15 | + |
| 16 | +## Setup |
| 17 | + |
| 18 | +Convert a checkpoint as described in the |
| 19 | +[StarVLA guide](../../tools/hf2gguf/starvla/README.md) and build the CUDA runtime. |
| 20 | + |
| 21 | +The environment uses these revisions: |
| 22 | + |
| 23 | +```text |
| 24 | +SimplerEnv: 06accaca93535902d408da4855f21cece12bceb7 |
| 25 | +ManiSkill2_real2sim: ef7a4d4fdf4b69f2c2154db5b15b9ac8dfe10682 |
| 26 | +``` |
| 27 | + |
| 28 | +```bash |
| 29 | +conda env create -f eval/simpler_env/environment.yaml |
| 30 | +conda activate robotcpp-simpler-env |
| 31 | + |
| 32 | +git clone --recurse-submodules https://github.com/simpler-env/SimplerEnv \ |
| 33 | + ckpts/simpler_env/source/SimplerEnv |
| 34 | +git -C ckpts/simpler_env/source/SimplerEnv checkout \ |
| 35 | + 06accaca93535902d408da4855f21cece12bceb7 |
| 36 | +git -C ckpts/simpler_env/source/SimplerEnv submodule update --init --recursive |
| 37 | + |
| 38 | +pip install -e ckpts/simpler_env/source/SimplerEnv/ManiSkill2_real2sim |
| 39 | +pip install -e ckpts/simpler_env/source/SimplerEnv |
| 40 | +``` |
| 41 | + |
| 42 | +Headless simulation requires a working Vulkan ICD. Run SimplerEnv's environment |
| 43 | +test first to confirm that SAPIEN can find a rendering device. |
| 44 | + |
| 45 | +## Run |
| 46 | + |
| 47 | +`VARIANT` accepts `oft`, `groot`, `pi_v3`, `qwen25_oft`, `qwen25_groot`, |
| 48 | +`qwen25_pi`, and `qwen25_fast`. |
| 49 | + |
| 50 | +Run the full profile: |
| 51 | + |
| 52 | +```bash |
| 53 | +CUDA_VISIBLE_DEVICES=0 \ |
| 54 | +VARIANT=oft \ |
| 55 | +OUTPUT=ckpts/starvla/results/oft/bridge.json \ |
| 56 | +bash eval/simpler_env/scripts/run_model_server.sh |
| 57 | +``` |
| 58 | + |
| 59 | +Run one smoke episode: |
| 60 | + |
| 61 | +```bash |
| 62 | +CUDA_VISIBLE_DEVICES=0 \ |
| 63 | +VARIANT=groot TASK_IDS=0 EPISODE_IDS=0 \ |
| 64 | +bash eval/simpler_env/scripts/run_model_server.sh |
| 65 | +``` |
| 66 | + |
| 67 | +The script reads three GGUF files from `ckpts/starvla/gguf/<variant>` and uses |
| 68 | +`build_cuda/bin/model-server` by default. Common overrides are `GGUF_DIR`, |
| 69 | +`SERVER_BIN`, `PYTHON`, `SIMPLER_ENV_ROOT`, `TASK_IDS`, |
| 70 | +`EPISODE_IDS`, `REPEATS`, and `OUTPUT`. |
| 71 | + |
| 72 | +Each task/repeat starts a fresh model-server. Results include checkpoint |
| 73 | +identity, rollout records, success rates, and timing summaries. |
| 74 | + |
| 75 | +## Latency |
| 76 | + |
| 77 | +Benchmark the official PyTorch checkpoint directly: |
| 78 | + |
| 79 | +```bash |
| 80 | +CUDA_VISIBLE_DEVICES=0 python -m eval.simpler_env.runners.latency_starvla \ |
| 81 | + --variant oft --compile-model |
| 82 | +``` |
| 83 | + |
| 84 | +The runner selects the checkpoint, Qwen assets, and Bridge normalization from |
| 85 | +the StarVLA catalog. It reports policy, action unnormalization, and total |
| 86 | +latency after 5 warmup calls and 20 measured calls. Policy latency includes |
| 87 | +StarVLA's image/text preprocessing and model forward. Omit `--compile-model` |
| 88 | +for eager PyTorch. Compilation is lazy; the first FAST warmup can take several |
| 89 | +minutes and is not included in the reported measurements. |
| 90 | + |
| 91 | +For the robot.cpp model-server path, use the common server benchmark: |
| 92 | + |
| 93 | +```bash |
| 94 | +CUDA_VISIBLE_DEVICES=0 N_BATCH=2048 SKIP_BUILD=1 \ |
| 95 | +GGUF_DIR="$PWD/ckpts/starvla/gguf/oft" \ |
| 96 | +bash robot_server/test/test_server_latency.sh starvla linux-cuda starvla-bridge |
| 97 | +``` |
0 commit comments