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

[QNN] 16a4w_block stride-2 conv + ReLU fails HTP graph prepare on SM8850 (Relu16bParamsPlaceholder)

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

维护者通常 1 天内回复

@psiddh 已经在做这个了。

开始于 2026年10月16日。

评估

这个 Issue 还没有评估数据。

描述

bug module: qnn partner: qualcomm
🐛 Describe the bug

A 16a4w_block (LPBQ) conv with stride 2 followed by ReLU fails HTP graph prepare on SM8850, for every block size tried (16/32/64):

[ERROR] [Qnn ExecuTorch]: tcm_migration.cc:2163::ERROR:no properties registered for q::Relu16bParamsPlaceholder
[ERROR] [Qnn ExecuTorch]: graph_prepare.cc:208::ERROR:could not create op: q::Relu16bParamsPlaceholder
AssertionError: Failed to generate Qnn context binary.

Stride 1, stride 2 without the ReLU, and plain per-channel 16a4w with stride 2 + ReLU all lower fine. Hit on DeepLabV3-ResNet50 (torchvision), where it blocks LPBQ for most ResNet-style CNNs.

import torch
from executorch.backends.qualcomm.quantizer.quantizer import QnnQuantizer, QuantDtype
from executorch.backends.qualcomm.serialization.qc_schema import QcomChipset
from executorch.backends.qualcomm.utils.utils import (
    generate_htp_compiler_spec, generate_qnn_executorch_compiler_spec, to_edge_transform_and_lower_to_qnn)
from torchao.quantization.pt2e.quantize_pt2e import convert_pt2e, prepare_pt2e

class M(torch.nn.Module):
    def __init__(self):
        super().__init__()
        self.conv = torch.nn.Conv2d(256, 128, 3, stride=2, padding=1)
    def forward(self, x):
        return torch.relu(self.conv(x))

x = (torch.randn(1, 256, 64, 64),)
gm = torch.export.export(M().eval(), x).module()
conv = next(n.name for n in gm.graph.nodes if n.target == torch.ops.aten.conv2d.default)
q = QnnQuantizer(soc_model=QcomChipset.SM8850)
q.set_default_quant_config(quant_dtype=QuantDtype.use_16a4w_block, is_conv_per_channel=True)
q.set_block_size_map({conv: (1, 16, 1, 1)})
p = prepare_pt2e(gm, q)
p(*x)
specs = generate_qnn_executorch_compiler_spec(
    soc_model=QcomChipset.SM8850, backend_options=generate_htp_compiler_spec(use_fp16=False))
to_edge_transform_and_lower_to_qnn(convert_pt2e(p), x, specs).to_executorch()
Versions

ExecuTorch main e6cfbf87c3, QAIRT 2.47.0.260601, x86_64 Linux host, target SM8850 (V81).

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 摘要。