directml.h) (DML_MATRIX_MULTIPLY_INTEGER_OPERATOR_DESC 结构

对整数数据执行矩阵乘法函数。

此运算符要求矩阵乘法输入张量为 4D,格式为 { BatchCount, ChannelCount, Height, Width }。 矩阵乘法运算符将执行 BatchCount * ChannelCount 独立矩阵乘法的数目。

例如,如果 ATensorSize{ BatchCount, ChannelCount, M, K }BTensorSize{ BatchCount, ChannelCount, K, N }OutputTensorSize{ BatchCount, ChannelCount, M, N },则矩阵乘法运算符将执行维度 {M,K} x {K,N} = {M,N} 的 BatchCount * ChannelCount 独立矩阵乘法。

语法

struct DML_MATRIX_MULTIPLY_INTEGER_OPERATOR_DESC {
  const DML_TENSOR_DESC *ATensor;
  const DML_TENSOR_DESC *AZeroPointTensor;
  const DML_TENSOR_DESC *BTensor;
  const DML_TENSOR_DESC *BZeroPointTensor;
  const DML_TENSOR_DESC *OutputTensor;
};

成员

ATensor

类型: const DML_TENSOR_DESC*

包含 A 数据的张量。 此张量的尺寸应为 { BatchCount, ChannelCount, M, K }

AZeroPointTensor

类型:_Maybenull_ const DML_TENSOR_DESC*

包含 ATensor 零点数据的可选张量。 如果需要按张量量化,则 的预期维度 AZeroPointTensor{ 1, 1, 1, 1 } ; { 1, 1, M, 1 } 如果需要按行量化,则 为 。 这些零点值用于取消 ATensor 值的量化。

BTensor

类型: const DML_TENSOR_DESC*

包含 B 数据的张量。 此张量的尺寸应为 { BatchCount, ChannelCount, K, N }

BZeroPointTensor

类型:_Maybenull_ const DML_TENSOR_DESC*

包含 BTensor 零点数据的可选张量。 如果需要按张量量化,则 的预期维度 BZeroPointTensor{ 1, 1, 1, 1 } ; { 1, 1, 1, N } 如果需要每列量化,则为 。 这些零点值用于对 BTensor 值进行量化。

OutputTensor

类型: const DML_TENSOR_DESC*

用于写入结果的张量。 此张量的尺寸为 { BatchCount, ChannelCount, M, N }

可用性

此运算符是在 中 DML_FEATURE_LEVEL_2_1引入的。

张量约束

  • ATensorBTensorOutputTensor 必须具有相同的 DimensionCount
  • BTensorBZeroPointTensor 必须具有相同 的数据类型
  • ATensorAZeroPointTensor 必须具有相同的 数据类型

张量支持

DML_FEATURE_LEVEL_5_2 及更高版本

种类 维度 支持的维度计数 支持的数据类型
ATensor 输入 { [BatchCount], [ChannelCount], M, K } 2 到 4 INT8、UINT8
AZeroPointTensor 可选输入 { [1], [1], AZeroPointCount, [1] } 1 到 4 INT8、UINT8
BTensor 输入 { [BatchCount], [ChannelCount], K, N } 2 到 4 INT8、UINT8
BZeroPointTensor 可选输入 { [1], [1], [1], BZeroPointCount } 1 到 4 INT8、UINT8
OutputTensor 输出 { [BatchCount], [ChannelCount], M, N } 2 到 4 INT32

DML_FEATURE_LEVEL_4_0 及更高版本

种类 维度 支持的维度计数 支持的数据类型
ATensor 输入 { [BatchCount], [ChannelCount], M, K } 2 到 4 INT8、UINT8
AZeroPointTensor 可选输入 { [1], [1], AZeroPointCount, [1] } 1 到 4 INT8、UINT8
BTensor 输入 { [BatchCount], [ChannelCount], K, N } 2 到 4 INT8、UINT8
BZeroPointTensor 可选输入 { [1], [1], 1, BZeroPointCount } 2 到 4 INT8、UINT8
OutputTensor 输出 { [BatchCount], [ChannelCount], M, N } 2 到 4 INT32

DML_FEATURE_LEVEL_2_1 及更高版本

种类 维度 支持的维度计数 支持的数据类型
ATensor 输入 { BatchCount, ChannelCount, M, K } 4 INT8、UINT8
AZeroPointTensor 可选输入 { 1, 1, AZeroPointCount, 1 } 4 INT8、UINT8
BTensor 输入 { BatchCount, ChannelCount, K, N } 4 INT8、UINT8
BZeroPointTensor 可选输入 { 1, 1, 1, BZeroPointCount } 4 INT8、UINT8
OutputTensor 输出 { BatchCount, ChannelCount, M, N } 4 INT32

要求

   
最低受支持的客户端 Windows 10内部版本 20348
最低受支持的服务器 Windows 10内部版本 20348
标头 directml.h