PDF parsing for RAG on GPUs: Docling and MinerU, pages per second, licences and GPU sizing
Eurokommerz, Vienna, since 2006: Private AI/ML · IT Managed Services · Enterprise Training · AI Hardware & Software
- Docling's own GPU page reports 3.1 pages per second for its standard pipeline without OCR and 2.4 pages per second for the GraniteDocling vision-language pipeline on one NVIDIA L40S 48 GB, about 11,000 and 8,600 pages an hour by our arithmetic
- In Docling, the GPU speeds up layout detection, RapidOCR and the vision-language model; table structure batching does not use the GPU, according to the same page
- Docling's code is under the MIT licence and granite-docling-258M under Apache 2.0; MinerU 4.0.12 uses the MinerU Open Source License, Apache 2.0 with a separate commercial licence above 100 million monthly active users or USD 20 million monthly revenue, and an attribution duty for online services
- MinerU's PyTorch tiers need an NVIDIA GPU with at least 8 GB of VRAM; its full install asks for a Volta or newer GPU with 8 GB free
- A vLLM instance takes the share of GPU memory its gpu-memory-utilization sets, per instance, so parsing at night and chat by day can share one card, and an RTX PRO 6000 Server Edition can give parsing its own MIG slice
Supplied by Eurokommerz: RTX PRO 6000 and H200 NVL Check price and availability →
What PDF parsing for RAG does, and where the GPU comes in
PDF parsing for RAG turns each page into structured text before chunking and embedding: headings, reading order, tables as tables, formulas and scanned pages through OCR. Docling and MinerU are two open-source toolkits for this step. Both run on CPU, and both get faster on a GPU: Docling's documentation reports 3.1 pages per second on one NVIDIA L40S for its standard pipeline without OCR, and 2.4 pages per second with its GraniteDocling vision-language model.
This step comes before everything our article on RAG on company data describes. When a table loses its columns here, no retriever or reranker gets the figure back later. Extracting fields from invoices or contracts with a large vision-language model is a different job, covered in vision-language model GPUs for document AI and OCR, and searching page images without text extraction is the subject of ColPali visual document retrieval. For the non-technical view of preparing files, see preparing company documents for an AI assistant.
Docling: two pipelines and the GPU
Docling, at version 2.142.1 on PyPI (released 23 October 2026, MIT, Python 3.10 or later), reads PDF and many other formats with "advanced PDF understanding incl. page layout, reading order, table structure, code, formulas, image classification", OCR for scanned pages and "local execution capabilities for sensitive data and air-gapped environments", in the words of its README. It has two ways of reading a PDF.
The standard pipeline runs a chain of specialised models: layout detection, table structure and OCR where needed. Docling's GPU page (read 25 October 2026) is precise about which parts use the GPU. Larger page batches run "GPU batch inference", in particular in the layout detection stage. OCR on the GPU depends on the engine: "RapidOCR supports GPU acceleration through both its Torch and ONNX Runtime backends". Table structure is not batched on the GPU; the example code says "currently not using GPU batching". The page enables CUDA with AcceleratorDevice.CUDA and raises ocr_batch_size, layout_batch_size and page_batch_size from their default of 4 to 64.
The VLM pipeline sends each page image to a vision-language model, by default GraniteDocling, which returns the page in Docling's own markup. Docling does not run that model itself in this setup: it calls a local server with OpenAI-compatible chat completions. The GPU page shows vllm serve for ibm-granite/granite-docling-258M with --max-num-seqs 512, --max-num-batched-tokens 8192, chunked prefill and --gpu-memory-utilization 0.9, notes that this vLLM endpoint is "available only on Linux", and sets Docling's concurrency to 64 with page_batch_size at least as large. Docling's RTX guide adds that Windows users should consider vLLM under WSL2.
| ITEM | GRANITE-DOCLING-258M |
|---|---|
| Parameters | 258M, listed as 0.3B |
| Weights | 515 MB, BF16 safetensors |
| Architecture | Idefics3 with SigLIP2 encoder |
| Languages | English; JA, AR, ZH experimental |
| Licence | Apache 2.0 (page metadata) |
Hugging Face model card and Files page of ibm-granite/granite-docling-258M (released 17 September 2025), read 25 October 2026. The repository has no separate LICENSE file.
The model card carries a warning for vLLM users: "support for tied weights as used in granite-docling is limited and breaks", and it recommends loading revision="untied" with vLLM. Docling's GPU page serves the default revision. Check the output of a few test pages before a large run, and pin the revision you validated.
MinerU 4: tiers, engines and GPU requirements
MinerU, at version 4.0.12 on PyPI (released 11 October 2026, Python 3.10 to 3.14), is OpenDataLab's parser. Its README describes four parsing tiers, flash, basic, standard and advanced, and engines from ONNX and PyTorch to llama.cpp, vLLM, LMDeploy and mlx. The default install runs the vision-language part on llama.cpp in Vulkan mode; vLLM or LMDeploy is the choice for an NVIDIA server.
| TIER | ENGINE | MIN RAM | ACCELERATOR |
|---|---|---|---|
| basic | ONNX | 2 GB | CPU works |
| basic | PyTorch | 8 GB | GPU recommended |
| standard, advanced | ONNX + llama.cpp | 8 GB | CPU works, Vulkan recommended |
| standard, advanced | PyTorch + llama.cpp | 16 GB | GPU required, 8 GB+ VRAM |
| standard, advanced | PyTorch + vLLM or LMDeploy | 16 GB | GPU required, 8 GB+ VRAM |
MinerU README on GitHub, read 25 October 2026. The full extra needs at least 16 GB of memory, a Volta-or-newer NVIDIA GPU with at least 8 GB of free VRAM and about 5 GB more disk.
MinerU's current vision-language model on Hugging Face is MinerU2.5-Pro-2605-1.2B, announced on 21 May 2026: a 1.2B-parameter model on the Qwen2-VL architecture, one 2.31 GB safetensors file, Apache 2.0 in the page metadata. Its card says "we strongly recommend using vllm for inference" and reports "a concurrent inference speed of 2.12 fps on one A100" with the vLLM async engine; that is the only throughput figure MinerU publishes, measured on a card we do not supply, and the card does not define the page set behind it. The README does not say which model each tier downloads, so check the model directory after the first run.
Our view after reading both: the memory needs are modest. MinerU asks for 8 GB of VRAM, and Docling's RTX guide gives batch-size advice for a desktop card with 12 GB, so the parser fits on any of our cards, and throughput and the card's other work decide the choice.
Published speed in pages per second
Docling's GPU page is the one source that states hardware, software and data for its figures. The test data was one PDF of 192 pages with 95 tables, and ViDoRe V3 HR, 14 documents with 1,110 pages. All machines ran CUDA 13.0; the L40S machine was a cloud instance with 8 vCPUs, 64 GB of RAM and driver 580.95.05.
| PIPELINE | HARDWARE | PAGES/S |
|---|---|---|
| Standard, no OCR | 1 × L40S 48 GB, 8 vCPU | 3.1 |
| VLM, GraniteDocling | 1 × L40S 48 GB, 8 vCPU | 2.4 |
| Standard, no OCR | desktop GPUs, 16 vCPU | 7.9 and 4.2 |
| Standard, no OCR | same hosts, CPU only | 1.5 and 1.2 |
| Standard, with OCR | desktop GPUs, ViDoRe set | 1.6 and 1.1 |
| MinerU2.5-Pro VLM | 1 × A100 (model card) | 2.12 fps |
Docling documentation "GPU support" and the MinerU2.5-Pro-2605-1.2B model card, both read 25 October 2026. The desktop rows come from Docling's two test machines with GeForce cards and 16 vCPUs, CPU-only with 16 PyTorch threads; Docling gives no OCR figure for the L40S.
Three readings of this table. On the same desktop hosts, the GPU ran the standard pipeline 5.3 and 3.5 times faster than CPU-only (7.9 against 1.5 and 4.2 against 1.2 pages per second). The L40S instance, with half their vCPUs, reached 3.1; Docling's figures do not separate the share of the GPU from that of the processor, so size the processor side of a parsing server as well. OCR is the expensive part: on the desktop machines, pages with OCR ran at well under half the speed of pages without, on a different document set. And Docling's RTX guide claims "up to 6x speedup compared to CPU-only processing" without naming hardware or method, so plan on the measured figures. No Docling or MinerU figure is published for the RTX PRO 4500 Server Edition or the RTX PRO 6000 Server Edition, so run a sample of your own documents on the delivered card before you plan a large archive.
We supply the L40S, RTX PRO 4500 Server Edition and RTX PRO 6000 Server Edition, alone or in servers built to order; send us the page count, the share of scans and your time window, and we reply with a configuration for ingestion and chat.
Licences: Docling, GraniteDocling, MinerU
| COMPONENT | LICENCE | CONDITIONS |
|---|---|---|
| Docling 2.142.1 (code) | MIT | models under their own licences |
| granite-docling-258M | Apache 2.0 | page metadata, no LICENSE file |
| MinerU 4.0.12 | MinerU Open Source License | Apache 2.0 plus terms below |
| MinerU2.5-Pro-2605-1.2B | Apache 2.0 | page metadata, no LICENSE file |
Docling README and PyPI page; MinerU LICENSE.md and PyPI page; Hugging Face pages of both models; all read 25 October 2026.
Docling's README states that "the Docling codebase is under MIT license" and that for individual models users should "refer to the model licenses found in the original packages". MinerU's LICENSE.md states that MinerU "is licensed under Apache License 2.0 and is subject to the additional terms below". Those terms are short. Commercial use needs no separate licence, unless "you and your Affiliates, on a consolidated basis" exceed 100 million monthly active users or total monthly revenue of USD 20 million; then a separate commercial licence is required before continuing, and without it the licence terminates automatically. And anyone who provides "online services to third parties based on MinerU" must state clearly in the interface or public documentation that MinerU is used.
For a company that runs MinerU only for its own internal search, the attribution duty does not arise from that text; the revenue threshold counts the whole company with its affiliates, which matters for larger corporate structures. A customer portal that parses uploaded documents with MinerU is an online service to third parties. Your legal counsel confirms how these terms apply to you.
One card for ingestion at night and chat by day
Ingestion is a batch job, and the chat model sits idle at night. vLLM's engine arguments define --gpu-memory-utilization as the fraction of GPU memory for the model executor, with a default of 0.92, and add: "This is a per-instance limit, and only applies to the current vLLM instance." Docling's example of 0.9 is right for a card that does nothing else; on a shared card it leaves no room for a second instance.
On an L40S, which has no MIG, two patterns work. Run the parser in a night window and stop it before the chat model's working hours, the scheduling our article on batch LLM inference on-premise describes with Kueue. Or run both all the time with explicit fractions: granite-docling's weights are 515 MB, so a parser instance with, for example, 0.25 reserves 12 GB of the 48 GB by our arithmetic and leaves the rest to the chat model; check the real use with nvidia-smi while a batch runs.
An RTX PRO 6000 Blackwell Server Edition can separate the two in hardware. With MIG it splits into up to four instances of 24 GB, and a 1g.24gb instance gives a parser three times the 8 GB that MinerU asks for; the layouts are in our RTX PRO 6000 MIG profiles article. The RTX PRO 4500 Server Edition splits into two instances of 16 GB, one for parsing and one for an embedding model. How many models a server holds side by side is covered in multiple LLMs on one GPU server.
How long an archive takes, by our estimate
The figures below divide page counts by Docling's published L40S rates. They hold for digital PDFs like Docling's test set; scans with OCR and dense tables take longer.
| PAGES | STANDARD, 3.1/S | VLM, 2.4/S |
|---|---|---|
| 10,000 | 0.9 h | 1.2 h |
| 100,000 | 9.0 h | 11.6 h |
| 1,000,000 | 89.6 h | 115.7 h |
| per 8-hour night | 89,280 pages | 69,120 pages |
our arithmetic from Docling's published L40S figures (3.1 × 3,600 = 11,160 pages per hour; 2.4 × 3,600 = 8,640), one card, one parser process; not a measurement.
For an archive of 300,000 pages, one L40S with the standard pipeline needs about 27 hours, a little over three nights. Docling's page reports a single card, so for a faster first load, run one parser worker per card on a multi-card server and measure the combined rate. After the first load, the daily increment is usually small: 5,000 new pages take about 27 minutes at 3.1 pages per second.
What happens after parsing
Parsed pages go into chunking, embedding and the vector index. The embedding step has its own GPU sizing, covered in embedding and reranker GPU requirements for RAG, and the choice of database in our vector database comparison. Keep the parser output, not only the vectors: re-chunking from stored Markdown or JSON needs no GPU pass, while re-parsing an archive takes nights.
What we supply
We supply the L40S, the RTX PRO 4500 Server Edition and the RTX PRO 6000 Server Edition as cards, and AI servers built to order, assembled and tested before delivery, with the operating system, NVIDIA driver, CUDA and a container runtime installed on request. They come on one EU contract and invoice; quantities and lead time are confirmed in writing with the quote. Setting up ingestion, models and retrieval on top is our Private AI/ML service.
FAQ
Does Docling use the GPU?
AcceleratorDevice.CUDA or AUTO. Its documentation names layout detection, RapidOCR and the GraniteDocling vision-language model as GPU stages; table structure batching does not use the GPU.How fast is Docling on a GPU?
Docling vs MinerU: which one for RAG?
What GPU does MinerU need?
Is MinerU free for commercial use?
Can Docling extract tables from PDFs on-premise?
Can PDF parsing and the chat model share one GPU?
--gpu-memory-utilization, which applies per instance, or schedule parsing at night. On an RTX PRO 6000 Server Edition a MIG instance gives parsing its own 24 GB.We supply L40S, RTX PRO 4500 Server Edition and RTX PRO 6000 Server Edition servers and set up document ingestion on them. Describe your task in a few sentences and our team will help. We reply within one business day. The first call is free.
Talk to an expertWe reply within one business day