Qualcomm: HTP hangs in fp16 on a dilated conv when the dilated extent exceeds the input and cin is large
维护者通常 1 天内回复
@psiddh 已经在做这个了。
开始于 2026年9月23日。
评估
这个 Issue 还没有评估数据。
描述
Repro
torch.nn.Conv2d(960, 256, kernel_size=3, padding=36, dilation=36, bias=False) # input (1, 960, 65, 65)
Lowered with generate_htp_compiler_spec(use_fp16=True) for SM8850. Lowering succeeds; execution never returns and a watchdog kills it after a constant ~11.47 s:
[ERROR] [Qnn ExecuTorch]: QnnDsp <E> Graph failed in execution with err 1007
[ERROR] [Qnn ExecuTorch]: qnn_graph_execute failed. Error 1007 (1011 in some builds)
ExecuTorch 1.6.0, QAIRT 2.47.0.260601, Galaxy S26 Ultra (SM8850, Hexagon v81), qnn_executor_runner from the same tree.
Bracketing
Both conditions are required: the dilated extent (1 + 36*2 = 73) must exceed the 65px input, and the input-channel count must be large.
| fp16 conv at 65x65 | result |
|---|---|
| 960->256, d36, one op | hang |
| 960->256, d36, as 2x(480->256) summed | 6.83 ms |
| 960->256, d36, as 4x(240->256) summed | 13.38 ms |
| 512->256, d36 | 3.89 ms |
| 960->256, d24 | 15.06 ms |
| 960->256, 1x1 | 4.81 ms |
| same model in a16w8 | 3.25 ms |
The 2-way split is the same math (conv is linear in cin), which points at input-channel volume at that dilation rather than at the op itself.
Does not help
use_multi_contexts, use_slc_allocator, use_dlbc, kHtpSustainedHighPerformance. Input size is irrelevant: 520x520 and 256x256 hang identically.
Impact
DeepLabV3's ASPP uses dilations 12/24/36, so every DeepLabV3 is unusable in fp16 on HTP; the backbone alone runs at 3.77 ms and the full head hangs. a16w8 compiles the same convolution and runs fine, so it looks fp16-specific.
cc @cccclai @winskuo-quic @shewu-quic @haowhsu-quic @DannyYuyang-quic @cbilgin @abhinaykukkadapu @psiddh
- 主要语言
- Python
- 星标
- 5.1k
- 派生
- 1.2k
- 平均合并
- 2 天 14 分钟
- 30 天内合并 PR
- 704
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
pytorch/executorch 的其他 Issue
-
Portable remainder kernel: wrong sign for integers and float64 rounded to float可能已有人在做 @JakeStevens 于 5 天前认领。 未关闭bug module: kernels triaged
难度 2/5 1-3 小时 新手友好度 82/100
pytorch/executorch#23682 · 已指派 2 人 ·
维护者通常 1 天内回复
-
enhancement triaged
难度 2/5 半天 新手友好度 68/100
pytorch/executorch#21640 ·
维护者通常 1 天内回复
-
[QNN] 16a4w_block stride-2 conv + ReLU fails HTP graph prepare on SM8850 (Relu16bParamsPlaceholder)可能已有人在做 @psiddh 于 1 天前认领。 未关闭bug module: qnn partner: qualcomm
pytorch/executorch#23922 · 已指派 1 人 ·
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 40/100
pytorch/executorch#23913 ·
维护者通常 1 天内回复
-
Cortex-M backend replaces channels-first dw conv with channels-last dw conv without handling the changed layout, fails at runtime可能已有人在做 @rahimuddin140 今天认领。 未关闭bug module: microcontrollers partner: arm
难度 4/5 3-5 天 新手友好度 38/100
pytorch/executorch#23812 · 2 条评论 · 1 个 reaction ·
维护者通常 1 天内回复
查看 pytorch/executorch 的全部 Issue
相似的 Issue
-
bug needs-triage priority:medium
难度 2/5 1-3 小时 新手友好度 86/100
yeongseon/azure-functions-logging-python#583 ·
维护者通常 1 天内回复
-
documentation needs-triage priority:medium
难度 2/5 1-3 小时 新手友好度 85/100
yeongseon/azure-functions-validation-python#546 ·
维护者通常 1 天内回复
-
PHP workflow streaming requests buffer the full SSE response可能已有人在做 @Winoren 今天认领。 未关闭review: medium
难度 2/5 1-3 小时 新手友好度 84/100
langgenius/dify#44270 · 1 条评论 · 1 个 reaction ·
维护者通常 1 天内回复
-
P4: low
难度 2/5 1-3 小时 新手友好度 82/100
jeffknupp/association#523 ·
-
bug help wanted
难度 2/5 1-3 小时 新手友好度 65/100
DarkStarSystems/pcons#229 ·
维护者通常 1 天内回复