openvinotoolkit / openvinotoolkit/npu_compiler
[Intel NPU][Driver Compiler] Q/DQ Concat with two C=8 Conv producers zeros output channels 8-15
Nobody has claimed this yet.
- Dominant language
- MLIR
- Stars
- 100
- Forks
- 50
- Avg merge
- 3h 57m
- Merged PRs (30d)
- 1
Description
intel_npu_concat_issue_repro.zip
Intel NPU Driver Compiler incorrectly lowers a channel-axis Concat with two distinct C=8 Conv → QuantizeLinear → DequantizeLinear input branches.
The attached a small ONNX model contains only seven nodes. ONNX Runtime CPU produces the expected 16-channel output, while the compiled NPU model produces correct values in channels 0–7 but sets channels 8–15 entirely to zero without reporting any error.
The issue reproduces with NPU drivers 32.0.100.4621 and 32.0.100.4841, and with NPU compiler versions 8.1 and 8.2. Moving the common DequantizeLinear after Concat restores correctness, suggesting a Concat bufferization/layout lowering issue in the NPU Driver Compiler.
You can see the detail in the zip file and also contains the root cause analysis by AI.
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.
Research direction
Start with the attached intel_npu_concat_issue_repro.zip and reproduce the seven-node ONNX model on the listed NPU driver and compiler versions, comparing its output with ONNX Runtime CPU. Trace the channel-axis Concat lowering and verify that channels 0–15 match the expected 16-channel output without errors.
Written by the indexing model from the issue text.
Assessment
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100