DML_MATRIX_MULTIPLY_INTEGER_OPERATOR_DESC結構 (directml.h)
對整數資料執行矩陣乘法函數。
此運算子需要矩陣將輸入張量乘以 4D,其格式為 { BatchCount, ChannelCount, Height, Width }
。 矩陣乘法運算子會執行獨立矩陣乘法的 BatchCount * ChannelCount 數目。
例如,如果ATensor的大小為{ BatchCount, ChannelCount, M, K }
,而BTensor的大小為 ,而OutputTensor{ BatchCount, ChannelCount, K, N }
的大小{ 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 資料的張量。 這個 tensor 的維度應該是 { BatchCount, ChannelCount, M, K }
。
AZeroPointTensor
類型: _Maybenull_ const DML_TENSOR_DESC*
選擇性的張量,包含 ATensor 零點資料。 的預期維度 AZeroPointTensor
是 { 1, 1, 1, 1 }
如果需要每個 tensor 仲裁,或 { 1, 1, M, 1 }
如果需要每一資料列的量化。 這些零點值用於取消量化 ATensor 值。
BTensor
類型:const DML_TENSOR_DESC*
包含 B 資料的張量。 這個 tensor 的維度應該是 { BatchCount, ChannelCount, K, N }
。
BZeroPointTensor
類型: _Maybenull_ const DML_TENSOR_DESC*
選擇性的張量,包含 BTensor 零點資料。 的預期維度 BZeroPointTensor
是 { 1, 1, 1, 1 }
如果需要每一個 tensor 仲裁,或 { 1, 1, 1, N }
如果需要每個資料行的量子化。 這些零點值用於取消量化 BTensor 值。
OutputTensor
類型:const DML_TENSOR_DESC*
要寫入結果的 Tensor。 這個 tensor 的維度為 { BatchCount, ChannelCount, M, N }
。
可用性
這個運算子是在 中 DML_FEATURE_LEVEL_2_1
引進的。
Tensor 條件約束
- ATensor、 BTensor和 OutputTensor 必須具有相同的 DimensionCount。
- BTensor 和 BZeroPointTensor 必須具有相同 的 DataType。
- ATensor 和 AZeroPointTensor 必須具有相同 的 DataType。
Tensor 支援
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 |