Myelin "Could not infer output types for operation: dequantize" on SM 8.7 (Orin); identical engine builds on SM 11.0 (Thor) with the same TensorRT 10.16.2.10
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 13.4k
- Forks
- 2.4k
- Avg merge
- 5d 3h
- Merged PRs (30d)
- 2
Description
Summary
Myelin fails to compile a dequantize operation on SM 8.7 (Orin) that compiles successfully on SM 11.0 (Thor), with identical TensorRT 10.16.2.10, identical L4T R39.2, and the byte-identical ONNX file. The two devices differ only in GPU architecture.
Environment
| Orin | Thor | |
|---|---|---|
| TensorRT | 10.16.2.10-1+cuda13.2 (trtexec v101602) |
identical |
| L4T | R39 revision 2.0 | identical |
| GPU arch | SM 8.7 (Ampere) | SM 11.0 (Blackwell) |
| Result | ❌ build fails | ✅ builds in 123 s |
Producer: NVIDIA ModelOpt 0.44.0 (modelopt.onnx.quantization), INT8 PTQ, entropy calibration, 320 real-image samples. Consumer: trtexec --stronglyTyped.
Reproduction
trtexec --onnx=quantized_int8.onnx --saveEngine=int8.engine --stronglyTyped
Failure
Every tactic is skipped with:
Error Code 9: ... [type.cpp:186: infer_type] Could not infer output types for operation:
291: dequantize: Dequantized input0-(f32[1,16,512,512]) | input0 reshape out_transpose_out
reshape out slice_U28 out-(i8[]), MyelinPW(42188) - Input Dequantization 0 scale
weightsHalf-0.35498H:(f16[]) ... No matching rules found for input operand types
In compileGraph at .../myelin/codeGenerator.cpp:1795
The operand mix is f32 activation + i8 slice + f16 scale. The Ampere codegen path appears to have no rule for that combination; the Blackwell path does.
What this is not
Three different quantization scopes were produced, giving three distinct artifacts. All three fail on Orin with a byte-identical error — same node 291, same MyelinPW(42188), same 0.35498 scale:
| Scope | Excluded op types | ONNX sha256 (16) | Orin |
|---|---|---|---|
| plain INT8 | none | fcf873e63e0a951c |
❌ |
| head-aware | Sigmoid, ReduceMax, Flatten, TopK, Gather, GatherElements | 03d2ab3115dd4de5 |
❌ |
| head + stem | above + Reshape, Transpose, Slice | 540fa615ced07025 |
❌ |
The error not moving while the graph does rules out quantization scope as the cause, and Thor compiling the identical file rules out the model and the calibration. That leaves architecture-specific codegen.
Impact
Strongly-typed INT8 is unavailable on Orin for this detector family. The documented alternative — weakly-typed --int8 --fp16 — permits silent downcast, which our deployment contract forbids.
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 by reproducing the failure with trtexec --onnx=quantized_int8.onnx --saveEngine=int8.engine --stronglyTyped on Orin, then compare the same artifact on Thor. Inspect the type inference location in type.cpp:186 and the code-generation path referenced at myelin/codeGenerator.cpp:1795. Done means the strongly typed INT8 engine builds successfully on Orin without weakening the deployment contract.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, python
- Domain
- compilers, machine-learning
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100