From 5ebb788ff88dfb9fe756d8d2a9a5f6a6a110c232 Mon Sep 17 00:00:00 2001 From: mohammed-saalim Date: Wed, 4 Feb 2026 00:02:33 -0600 Subject: [PATCH] Fix KeyError in InsertIOQDQ pass for LLM quantization Extend q_dq_map to include dequantize ops mapping to themselves. This fixes KeyError when nodes have dequantize encodings (e.g., dequantize_per_tensor.default) instead of quantize encodings. Fixes #16690 --- backends/qualcomm/_passes/insert_io_qdq.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/backends/qualcomm/_passes/insert_io_qdq.py b/backends/qualcomm/_passes/insert_io_qdq.py index caecae64fa8..f239aac2519 100644 --- a/backends/qualcomm/_passes/insert_io_qdq.py +++ b/backends/qualcomm/_passes/insert_io_qdq.py @@ -31,11 +31,16 @@ class InsertIOQDQ(ExportPass): """ q_dq_map = { - # per tensor + # per tensor (quantize -> dequantize) exir_ops.edge.quantized_decomposed.quantize_per_tensor.default: exir_ops.edge.quantized_decomposed.dequantize_per_tensor.tensor, exir_ops.edge.quantized_decomposed.quantize_per_tensor.tensor: exir_ops.edge.quantized_decomposed.dequantize_per_tensor.tensor, - # per channel + # per tensor (dequantize -> dequantize, for nodes with dequantize encoding) + exir_ops.edge.quantized_decomposed.dequantize_per_tensor.default: exir_ops.edge.quantized_decomposed.dequantize_per_tensor.default, + exir_ops.edge.quantized_decomposed.dequantize_per_tensor.tensor: exir_ops.edge.quantized_decomposed.dequantize_per_tensor.tensor, + # per channel (quantize -> dequantize) exir_ops.edge.quantized_decomposed.quantize_per_channel.default: exir_ops.edge.quantized_decomposed.dequantize_per_channel.default, + # per channel (dequantize -> dequantize, for nodes with dequantize encoding) + exir_ops.edge.quantized_decomposed.dequantize_per_channel.default: exir_ops.edge.quantized_decomposed.dequantize_per_channel.default, } def __init__(self, edge_program: torch.export.ExportedProgram):