Evaluation-backed AMD ROCm port of MinerU — runs the MinerU 3.4 pipeline and the MinerU2.5-Pro VLM on AMD gfx1100 (RDNA3) and reports OmniDocBench v1.6 results across multiple inference backends. Not a precision-aligned port: no same-page-set CUDA control exists, and the upstream headline may use a different engine. See Benchmark methodology.
- What it is. Tooling to run opendatalab MinerU (3.4 pipeline + 2.5-Pro VLM) on AMD ROCm and score it on OmniDocBench v1.6.
- Where verified. AMD gfx1100 (RDNA3), Radeon PRO W7900 (48 GB), ROCm 7.2, bf16. Host has 4x W7900; each benchmark used 1 GPU (no tensor parallel).
- Most reliable results. MinerU2.5-Pro VLM (vLLM-on-ROCm) full 1651 = 95.56 Overall (platform CDM-scored; prior standalone score 95.46 from the same prediction set — Δ +0.10 pp, entirely the Formula-CDM submetric 96.46→96.73); MinerU 3.4 pipeline full 1651 = 86.48 Overall.
- Most important limitation. Not precision-aligned. No same-engine CUDA control exists; the upstream headline may be measured with a different engine. The official anchor (vlm-engine 95.30) is aligned to the upstream README "Local Deployment" table and is community-verified, not official support.
- Upstream. This is a port OF opendatalab/MinerU; the omnidocbench-rocm engine is one optional consumer (install the
[platform]extra), not the definition of this repo.
The core package is GPU-free and has no platform dependency.
pip install -e ".[dev]" # core + dev/CI tooling (pytest, ruff, reuse)
# optional: omnidocbench-rocm engine integration (the adapter/run_adapter.py path)
pip install -e ".[platform]"For platform provisioning (weights, ROCm runtime), run make setup-linux (or
make setup-windows). GPU backends additionally need a ROCm torch + (VLM)
vLLM-on-ROCm, installed separately from a verified ROCm wheel source — see
docs/reproducibility.md.
Note: provisioning scripts (adapter/setup/) are stubs — they document the
manual steps required; they do not automate the full environment setup.
See adapter/setup/00-install-deps.sh for the Linux recipe.
The smoke backend needs no GPU — it writes a placeholder .md per image so you can verify the contract end-to-end:
bash examples/run_demo.sh # Linux/macOS
# .\examples\run_demo.ps1 # WindowsOr directly:
python adapter/run_adapter.py --img-dir examples --out-dir /tmp/out --platform linux-rocm --backend smokeThe canonical OmniDocBench-ROCm platform evaluation uses omnidocbench-rocm:
omnidocbench-rocm run \
--stage all \
--platform linux-rocm \
--version v16 \
--revision 2b161d0 \
--adapter adapter/run_adapter.py \
--model-id mineru2.5 \
--backend vlm-vllm \
--server-url http://127.0.0.1:8265/v1 \
--api-model-name mineru-pro \
--git-commit "$(git rev-parse HEAD)" \
--results-dir results/omnidocbench/v16/linux-rocm \
--cdm
# Add --skip-existing only to resume an interrupted run (make eval-mineru2.5-linux RESUME=1).omnidocbench-rocm run \
--stage all \
--platform linux-rocm \
--version v16 \
--revision 2b161d0 \
--adapter adapter/run_adapter.py \
--model-id mineru-pipeline \
--backend pipeline \
--git-commit "$(git rev-parse HEAD)" \
--results-dir results/omnidocbench/v16/linux-rocm \
--cdmomnidocbench-rocm infer --backend vlm-vllm ...
omnidocbench-rocm score ...
omnidocbench-rocm publish --predictions-dir <real-prediction-dir> ...The standalone mineru-rocm CLI (predict / score) remains available for
developer debugging — see docs/reproducibility.md for the full recipe.
| Model / Backend | Overall | Text Edit | Formula CDM | Table TEDS |
|---|---|---|---|---|
| official MinerU2.5-Pro (upstream README vlm-engine row; community-verified, not official support) | 95.30 | — | — | — |
| ours MinerU2.5-Pro (vlm-llamacpp, Windows-HIP) | 95.46 | 0.0373 | 97.01 | 93.11 |
| ours MinerU2.5-Pro (vlm-vllm, ROCm) | 95.56 | 0.0359 | 96.73 | 93.54 |
| ours MinerU2.5-Pro (vlm-transformers, ROCm) | sample-only |
The vlm-vllm row is reproduced on linux-rocm (self-attested, badge: community):
1651/1651 pages attempted, 1649 non-empty predictions (2 empty), no process
crashes; ~7 h on a single GPU (gfx1100); read-order EditDist 0.1240.
Overall 95.56 is consistent with the published upstream reference range
1651/1651 pages attempted, 1649 non-empty predictions (2 empty), no process
crashes; ~7 h on a single GPU (gfx1100); read-order EditDist 0.1240. The
�lm-llamacpp row is reproduced on windows-hip (Strix Halo): 1649/1651 ok,
2 empty (cover/decoration pages), Overall 95.46 identical to the Linux vLLM
standalone score. See docs/windows-vlm-phase2.md.
| ours MinerU 3.4 pipeline (ROCm gfx1100, linux-rocm) | 86.48 | 0.0566 | 83.07 | 82.04 |
| ours MinerU 3.4 pipeline (Strix Halo, windows-hip) | 86.59 | 0.0565 | 83.39 | 82.04 |
Linux pipeline results are at results/omnidocbench/v1.6/pipeline/; the
Windows-HIP Phase 1 bundle is at results/omnidocbench/v16/windows-hip/.
The Windows run recovered the one header-only empty output and finished
1651/1651 pages. The primary registry card is mineru2.5 (VLM); pipeline is a
supplementary card in the same repo — see model_card.pipeline.json and
model_card.pipeline.windows-hip.json.
reproducibility.lock.yaml is the single source of
truth — pinned commits, byte-exact weight/GT SHA256 cross-checked against the
upstream HF repos, environment versions, and the metric formula. Verified values
were populated from the full 1651-page reruns completed on 2026-07-19.
Hardware: AMD gfx1100 (Radeon PRO W7900), 48 GB VRAM, ROCm 7.2, bf16.
The official reference (pipeline 86.47, vlm-engine 95.30) is sourced from the
upstream MinerU README "Local Deployment" table as a community-verified anchor,
not official support. See docs/reproducibility.md for the full recipe.
Release consumers should also read docs/release-artifact.md,
docs/hardware-matrix.md, and
docs/architecture.md. The release checklist is
maintained at docs/release-checklist.md.
This repo is Apache-2.0 (original packaging/tooling). The MinerU pipeline
is under the MinerU Open Source License (Apache-2.0 + additional terms:
commercial use above MAU 100M or USD 20M/mo revenue needs a separate license;
online services must attribute MinerU). mineru-vl-utils and the MinerU2.5-Pro
weights are Apache-2.0. The PDF-Extract-Kit-1.0 pipeline weights declare
no license on their HF card — treat as license-ambiguous, do not
redistribute. Full breakdown in NOTICE and LICENSES/.
Not affiliated with the MinerU Team / OpenDataLab.
- ROCm/AMDMIGraphX#5078 — Loop-subgraph parser bug affecting ONNX table recognition on ROCm.
- Upstream
opendatalab/MinerUAMD.md contribution + PDF-Extract-Kit-1.0 license clarification are planned (P4).
- The
smokebackend emits placeholder text, not real OCR. CI/conformance can forcesmokevia--backend smoketo validate the adapter contract without a GPU. - Windows-HIP pipeline Phase 1 is
verifiedwith a conformant 1651-page CDM bundle; Phase 2 VLM (llama.cpp HIP) isverifiedwith Overall 95.46, identical to the Linux vLLM baseline (independently reproduced). - Provisioning scripts (
adapter/setup/) are stubs that document the steps; they do not automate full environment setup. - Platform-standard artifacts for
results/omnidocbench/v16/linux-rocm/were generated on 2026-07-21 (self-contained CDM bundles formineru2.5andmineru-pipeline:run_summary+provenance+metric_result+run_stats+ a SHA256prediction_manifest+dataset_identity). The legacy results underresults/omnidocbench/v1.6/are retained for historical comparison and prediction-source provenance. Validate any bundle withomnidocbench-rocm validate-bundle results/omnidocbench/v16/linux-rocm. - VLM empty outputs: 2 of 1651 VLM pages produced empty predictions (recorded as failures + listed in the prediction manifest).
- Pipeline empty outputs: the Linux reference has 1 empty prediction; the Windows-HIP run recovered the header-only page and finished 1651/1651.
- Conformance passes all structural checks (
omnidocbench-rocm conformance .→ CONFORMANT); platform-standard artifacts are committed. - Full list:
docs/known-gaps.md.