DML_MATRIX_MULTIPLY_INTEGER_OPERATOR_DESC-Struktur (directml.h)
Führt eine Matrixmultiplikationsfunktion für ganzzahlige Daten aus.
Dieser Operator erfordert, dass die Matrix-Multiplikations-Eingabe tensoren 4D sein, die als { BatchCount, ChannelCount, Height, Width }
formatiert sind. Der Matrixmultiplikationsoperator führt BatchCount * ChannelCount number of independent matrix multipliications aus.
Wenn beispielsweise ATensorgrößen von { BatchCount, ChannelCount, M, K }
hat und BTensorGrößen von { BatchCount, ChannelCount, K, N }
hat und OutputTensorgrößen von { BatchCount, ChannelCount, M, N }
hat, führt der Matrixmultiplikationsoperator BatchCount * ChannelCount unabhängige Matrixmultiplikationen der Dimensionen {M,K} x {K,N} = {M,N} = {M,N} aus.
Syntax
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;
};
Member
ATensor
Typ: const DML_TENSOR_DESC*
Ein Tensor, der die A-Daten enthält. Die Dimensionen dieses Tensors sollten sein { BatchCount, ChannelCount, M, K }
.
AZeroPointTensor
Typ: _Maybenull_ const DML_TENSOR_DESC*
Ein optionaler Tensor, der die ATensor-Nullpunktdaten enthält. Die erwarteten Dimensionen von AZeroPointTensor
sind { 1, 1, 1, 1 }
, wenn eine Quantisierung pro Tensor erforderlich ist oder { 1, 1, M, 1 }
eine Zeilenquantisierung erforderlich ist. Diese Nullpunktwerte werden zum Dequantisieren der ATensor-Werte verwendet.
BTensor
Typ: const DML_TENSOR_DESC*
Ein Tensor, der die B-Daten enthält. Die Dimensionen dieses Tensors sollten sein { BatchCount, ChannelCount, K, N }
.
BZeroPointTensor
Typ: _Maybenull_ const DML_TENSOR_DESC*
Ein optionaler Tensor, der die BTensor-Nullpunktdaten enthält. Die erwarteten Dimensionen von BZeroPointTensor
sind { 1, 1, 1, 1 }
, wenn eine Quantisierung pro Tensor erforderlich ist oder { 1, 1, 1, N }
eine Quantisierung pro Spalte erforderlich ist. Diese Nullpunktwerte werden zum Dequantisieren der BTensor-Werte verwendet.
OutputTensor
Typ: const DML_TENSOR_DESC*
Ein Tensor, in den die Ergebnisse geschrieben werden sollen. Die Dimensionen dieses Tensors sind { BatchCount, ChannelCount, M, N }
.
Verfügbarkeit
Dieser Operator wurde in DML_FEATURE_LEVEL_2_1
eingeführt.
Tensoreinschränkungen
- ATensor, BTensor und OutputTensor müssen über dasselbe DimensionCount-Objekt verfügen.
- BTensor und BZeroPointTensor müssen denselben Datentyp aufweisen.
- ATensor und AZeroPointTensor müssen denselben Datentyp aufweisen.
Tensorunterstützung
DML_FEATURE_LEVEL_5_2 und höher
Tensor | Typ | Dimensionen | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
---|---|---|---|---|
ATensor | Eingabe | { [BatchCount], [ChannelCount], M, K } | 2 bis 4 | INT8, UINT8 |
AZeroPointTensor | Optionale Eingabe | { [1], [1], AZeroPointCount, [1] } | 1 bis 4 | INT8, UINT8 |
BTensor | Eingabe | { [BatchCount], [ChannelCount], K, N } | 2 bis 4 | INT8, UINT8 |
BZeroPointTensor | Optionale Eingabe | { [1], [1], [1], BZeroPointCount } | 1 bis 4 | INT8, UINT8 |
OutputTensor | Ausgabe | { [BatchCount], [ChannelCount], M, N } | 2 bis 4 | INT32 |
DML_FEATURE_LEVEL_4_0 und höher
Tensor | Typ | Dimensionen | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
---|---|---|---|---|
ATensor | Eingabe | { [BatchCount], [ChannelCount], M, K } | 2 bis 4 | INT8, UINT8 |
AZeroPointTensor | Optionale Eingabe | { [1], [1], AZeroPointCount, [1] } | 1 bis 4 | INT8, UINT8 |
BTensor | Eingabe | { [BatchCount], [ChannelCount], K, N } | 2 bis 4 | INT8, UINT8 |
BZeroPointTensor | Optionale Eingabe | { [1], [1], 1, BZeroPointCount } | 2 bis 4 | INT8, UINT8 |
OutputTensor | Ausgabe | { [BatchCount], [ChannelCount], M, N } | 2 bis 4 | INT32 |
DML_FEATURE_LEVEL_2_1 und höher
Tensor | Typ | Dimensionen | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
---|---|---|---|---|
ATensor | Eingabe | { BatchCount, ChannelCount, M, K } | 4 | INT8, UINT8 |
AZeroPointTensor | Optionale Eingabe | { 1, 1, AZeroPointCount, 1 } | 4 | INT8, UINT8 |
BTensor | Eingabe | { BatchCount, ChannelCount, K, N } | 4 | INT8, UINT8 |
BZeroPointTensor | Optionale Eingabe | { 1, 1, 1, BZeroPointCount } | 4 | INT8, UINT8 |
OutputTensor | Ausgabe | { BatchCount, ChannelCount, M, N } | 4 | INT32 |
Anforderungen
Unterstützte Mindestversion (Client) | Windows 10 Build 20348 |
Unterstützte Mindestversion (Server) | Windows 10 Build 20348 |
Kopfzeile | directml.h |