OPERATOR RULE

Split

算子允许使用非量化模式或量化被动传递模式。

被动传递
规则定位被动传递
量化判定量化时被动传递
数据类型继承入口量化类型;激活 S8 / U8 / S16 / U16
示例状态4/4 PASS

数据类型与量化边界

数据类型概述
继承入口量化类型;激活 S8 / U8 / S16 / U16
量化要求
量化时被动传递

规则原文

规则定位:被动传递

本页是 ax quant spec 的逐算子展开。本页与统一规范冲突时,以统一规范为准。

规则

  • 算子允许使用非量化模式或量化被动传递模式。
  • Split 以及各分支上连续的被动传递算子构成 Split 被动传递 Pattern。
  • 量化被动传递模式下,Pattern 内部不插入 Q/DQ。
  • 每个分支可以继续经过其他被动传递算子,直至离开 Pattern 时建立 Q/DQ 边界。
  • 完全未使用且不是 graph output 的输出不构成量化数据出口。
  • 最终出口 Q/DQ 的整数量化类型可以与输入不同,各出口之间也可以不同。
  • 不因最终出口与输入的量化类型或量化参数不同而生成 error
  • 激活量化类型从 S8 对称或非对称、U8 非对称、S16 对称、U16 非对称中选择,粒度为 per-tensor。

check_value = true 时:

  • 与输入整数量化类型相同的出口,其 scalezero_point 必须可静态读取并分别与输入逐元素完全一致;
  • 最终出口按整数量化类型分组,同类型至少有两个出口时,组内 scalezero_point 必须可静态读取并分别逐元素完全一致;
  • 数值未知或不一致生成 warn,不生成 error
  • 不同整数量化类型的出口之间不比较 scalezero_point

check_value = false 时不做上述数值一致性检查。每个最终出口 Q/DQ 自身仍应用基础 QDQ 规则。

本文档未增加限制的属性、shape 和输入形式,遵循模型声明 opset 下的 ONNX 语义。

与 Pattern 的关系

  • Split 位于 GLU Pattern 内部时,由 GLU Pattern 接管,不单独应用被动传递规则。
  • Split 与相连的被动传递算子可以形成带分支的被动传递 Pattern;Pattern 内部无 Q/DQ,最终出口应用上述类型分组与数值检查规则。

MODEL EVIDENCE

可验证的 ONNX 案例

每张卡片直接嵌入对应的 Netron 模型图,进入页面后自动加载。

代表性结构

VERIFIED

覆盖该页面的主规则路径。

errors 0warnings 0nodes 7Q/DQ 3 / 3patterns none
Netron正在加载模型…
新窗口打开

U8 激活

VERIFIED

被动传递 U8 非对称 per-tensor 量化参数,出入口一致。

errors 0warnings 0nodes 7Q/DQ 3 / 3patterns none
Netron正在加载模型…
新窗口打开

S16 激活

VERIFIED

被动传递 S16 对称 per-tensor 量化参数,出入口一致。

errors 0warnings 0nodes 7Q/DQ 3 / 3patterns none
Netron正在加载模型…
新窗口打开

U16 激活

VERIFIED

被动传递 U16 非对称 per-tensor 量化参数,出入口一致。

errors 0warnings 0nodes 7Q/DQ 3 / 3patterns none
Netron正在加载模型…
新窗口打开