VITRA VLA inference runs on AMD GPUs (ROCm) — verified on MI300X, zero source changes
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 502
- Forks
- 34
- PR merge metrics
- No merged PRs in 30d
Description
Summary
VITRA's VLA inference path (build_vla + predict_action) runs on AMD Instinct GPUs via ROCm with no source changes beyond the dtype handling already documented in the README minimal example.
VITRA is pure PyTorch / transformers (no custom CUDA kernels), so it works on ROCm out of the box once the environment is set up correctly.
Tested on
- GPU: AMD Instinct MI300X (also verified on MI308X, gfx942)
- ROCm: 7.2.1
- PyTorch: 2.9.1 (ROCm build)
- Docker:
rocm/pytorch:rocm7.2.1_ubuntu24.04_py3.12_pytorch_release_2.9.1 transformers==4.47.1(the repo's pin)- Weights:
VITRA-VLA/VITRA-VLA-3B+google/paligemma2-3b-mix-224
Result
VITRA_Paligemmaloads the checkpoint with 0 missing / 0 unexpected state-dict keys.predict_actionreturns a finite[1, 16, 192]action chunk (16-step × 192-dim unified action).- Timings (warm cache):
load ≈ 15.5s,infer ≈ 10.0s.
Setup notes for ROCm / AMD users
A few environment details that make it work — none require source changes:
- Pin
transformers==4.47.1(the repo's pyproject pin). Newertransformerschange
get_image_features' return type →'BaseModelOutputWithPooling' has no attribute 'numel',
and the correct pin also makes the checkpoint load cleanly (0/0 keys). - Install without training-only CUDA deps for inference: a full
pip install -e .stalls
buildingflash-attn/deepspeed, which are only needed for training. Using
pip install --no-deps -e .plus the explicit pure-Python deps keeps the Docker ROCm
PyTorch intact (torch.version.hipunchanged) and inference runs fine without them.
Would apip install-friendly inference-only path (movingflash-attn/deepspeedto an
optional extra) be welcome? Happy to help. - float32 inputs:
state/fovbuilt from NumPy /np.deg2raddefault to float64
(torch.Double) and raisemat1 and mat2 must have the same dtype. This is already handled
by the README minimal example (which casts tofloat32), so no change needed — just noting
it for other ROCm users following along.
Ask
Nothing blocking — this is mainly a compatibility report so AMD/ROCm users know VITRA works.
If useful, I'm happy to open a follow-up PR for the inference-only optional-extras packaging
in note (2).
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Read the README minimal example and the repository's pyproject dependency pin, then compare them with the reported ROCm setup and dtype requirements. Done would mean a clearly scoped documentation update for AMD/ROCm inference; the optional inference-only packaging idea is presented as a possible follow-up rather than a defined change.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, python, pytorch
- Domain
- documentation, machine-learning
- Issue type
- Documentation
- Difficulty
- 1/5
- Estimated time
- Under an hour
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 38/100