Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Qualcomm: HTP hangs in fp16 on a dilated conv when the dilated extent exceeds the input and cin is large

未关闭
#23,096 4 条评论 2 个 reaction 已指派 1 人 在 GitHub 查看

维护者通常 1 天内回复

@psiddh 已经在做这个了。

开始于 2026年9月23日。

评估

这个 Issue 还没有评估数据。

描述

bug module: qnn partner: qualcomm triaged

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

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

pytorch/executorch 的其他 Issue

查看 pytorch/executorch 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。