MatMulInteger

MatMulInteger - 10

版本

  • 名称: MatMulInteger (GitHub)

  • : main

  • 自版本: 10

  • 函数: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

此版本的算子自版本 10 起可用。

摘要

矩阵乘积,其行为类似于 numpy.matmul。乘积**绝不会**溢出。仅当在 32 位中时,累积才会溢出。

输入

2 到 4 个输入。

  • A (异构) - T1

    N 维矩阵 A

  • B (异构) - T2

    N 维矩阵 B

  • a_zero_point (可选,异构) - T1

    输入“A”的零点张量。它是可选的,默认值为 0。它可以是标量或 N 维张量。标量指的是每个张量量化,而 N 维指的是每行量化。如果输入是形状为 [M, K] 的 2D,则零点张量可以是 M 元素向量 [zp_1, zp_2, …, zp_M]。如果输入是形状为 [D1, D2, M, K] 的 N 维张量,则零点张量可以具有形状 [D1, D2, M, 1]。

  • b_zero_point (可选,异构) - T2

    输入“B”的零点张量。它是可选的,默认值为 0。它可以是标量或 N 维张量,标量指的是每个张量量化,而 N 维指的是每列量化。如果输入是形状为 [K, N] 的 2D,则零点张量可以是 N 元素向量 [zp_1, zp_2, …, zp_N]。如果输入是形状为 [D1, D2, K, N] 的 N 维张量,则零点张量可以具有形状 [D1, D2, 1, N]。

输出

  • Y (异构) - T3

    A * B 的矩阵乘积结果

类型约束

  • T1 in ( tensor(int8), tensor(uint8) )

    将输入 A 数据类型约束为 8 位整数张量。

  • T2 in ( tensor(int8), tensor(uint8) )

    将输入 B 数据类型约束为 8 位整数张量。

  • T3 in ( tensor(int32) )

    将输出 Y 数据类型约束为 32 位整数张量。