Utilizing all NVDEC engines on a single GPU with multiple pipelines
@JanuszL is already working on this.
Since Jun 7, 2026.
- Dominant language
- C++
- Stars
- 5.8k
- Forks
- 678
- Avg merge
- 3d 1h
- Merged PRs (30d)
- 27
Description
Describe the question.
When running some video decoding benchmarks by building a DALIGenericIterator with a single pipeline on my GH200 system and checking the NVDEC engine utilization via
nvidia-smi dmon -s u
I find my DEC utilization to be capped at ~14%, which would align with only one (out of seven) NVDEC engines being used. According to the documentation I found, the NVIDIA driver should take care of load balancing between the different decoding units.
However, when creating multiple DALI piplines (e.g., seven), I find my DEC utilization to be close to 100%, indicating that all NVDEC engines are used. In raw decoding performance, running multiple pipelines on the same GPU also give me a performance boost.
My questions are:
- Can a single DALI pipeline only use a single decoding unit?
- Is running multiple pipelines on the same GPU the default way to utilize all decoding units?
Check for duplicates
- I have searched the open bugs/issues and have found no duplicates for this bug report
Contributor guide
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.
Assessment
This issue has not been assessed yet.