次の方法で共有


DML_MATRIX_MULTIPLY_INTEGER_OPERATOR_DESC構造体 (directml.h)

整数データに対して行列乗算関数を実行します。

この演算子では、行列乗算入力テンソルを 4D にする必要があります。これは として { BatchCount, ChannelCount, Height, Width }書式設定されます。 行列乗算演算子は、独立した行列乗算の BatchCount * ChannelCount 数を実行します。

たとえば、ATensor{ BatchCount, ChannelCount, M, K }サイズが で、BTensorサイズが で{ BatchCount, ChannelCount, K, N }、OutputTensorサイズが の{ 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導入されました。

テンソル制約

  • ATensorBTensorおよび OutputTensor には、同じ DimensionCount が必要です。
  • BTensorBZeroPointTensor には、同じ DataType が必要です。
  • ATensorAZeroPointTensor には、同じ DataType が必要です。

Tensor のサポート

DML_FEATURE_LEVEL_5_2以上

テンソル 種類 Dimensions サポートされているディメンション数 サポートされるデータ型
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以上

テンソル 種類 Dimensions サポートされているディメンション数 サポートされるデータ型
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以上

テンソル 種類 Dimensions サポートされているディメンション数 サポートされるデータ型
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
Header directml.h