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
導入されました。
テンソル制約
- ATensor、 BTensor、 および OutputTensor には、同じ DimensionCount が必要です。
- BTensor と BZeroPointTensor には、同じ DataType が必要です。
- ATensor と AZeroPointTensor には、同じ 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 |