Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの 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 コメント 1 件 リアクション 1 件 担当者 1 名 GitHub で見る

@psiddh がすでに取り組んでいます。

2026年9月23日 から。

評価

この issue はまだ評価されていません。

説明

module: qnn partner: qualcomm

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
スター
5k
フォーク
1.2k
平均マージ
2日 13時間
マージ済み PR(30日)
595

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

pytorch/executorch のほかの issue

pytorch/executorch の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。