DML_MATRIX_MULTIPLY_INTEGER_OPERATOR_DESC structure (directml.h)
Exécute une fonction de multiplication de matrice sur les données entières.
Cet opérateur nécessite que les tenseurs d’entrée de multiplication de matrice soient 4D, qui sont au { BatchCount, ChannelCount, Height, Width }
format . L’opérateur de multiplication de matrice effectue BatchCount * ChannelCount nombre de multiplications de matrice indépendantes.
Par exemple, si ATensor a Sizes de { BatchCount, ChannelCount, M, K }
, et BTensor a Sizes de { BatchCount, ChannelCount, K, N }
et OutputTensor a Sizes de , l’opérateur de multiplication de { BatchCount, ChannelCount, M, N }
matrice effectue des multiplications de matrice indépendantes BatchCount * ChannelCount de dimensions {M,K} x {K,N} = {M,N}.
Syntaxe
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;
};
Membres
ATensor
Type : const DML_TENSOR_DESC*
Tenseur contenant les données A. Les dimensions de ce tenseur doivent être { BatchCount, ChannelCount, M, K }
.
AZeroPointTensor
Type : _Maybenull_ const DML_TENSOR_DESC*
Tenseur facultatif contenant les données de point zéro ATensor. Les dimensions attendues du sont { 1, 1, 1, 1 }
si la AZeroPointTensor
quantisation par tenseur est requise, ou { 1, 1, M, 1 }
si la quantisation par ligne est requise. Ces valeurs de point zéro sont utilisées pour la dequantisation des valeurs ATensor .
BTensor
Type : const DML_TENSOR_DESC*
Tenseur contenant les données B. Les dimensions de ce tenseur doivent être { BatchCount, ChannelCount, K, N }
.
BZeroPointTensor
Type : _Maybenull_ const DML_TENSOR_DESC*
Tenseur facultatif contenant les données de point zéro BTensor . Les dimensions attendues du sont { 1, 1, 1, 1 }
si la BZeroPointTensor
quantisation par tenseur est requise, ou { 1, 1, 1, N }
si la quantisation par colonne est requise. Ces valeurs de point zéro sont utilisées pour déquantifier les valeurs BTensor.
OutputTensor
Type : const DML_TENSOR_DESC*
Tenseur dans lequel écrire les résultats. Les dimensions de ce tenseur sont { BatchCount, ChannelCount, M, N }
.
Disponibilité
Cet opérateur a été introduit dans DML_FEATURE_LEVEL_2_1
.
Contraintes tensoriels
- ATensor, BTensor et OutputTensor doivent avoir le même DimensionCount.
- BTensor et BZeroPointTensor doivent avoir le même DataType.
- ATensor et AZeroPointTensor doivent avoir le même DataType.
Prise en charge des tenseurs
DML_FEATURE_LEVEL_5_2 et versions ultérieures
Tenseur | Type | Dimensions | Nombre de dimensions pris en charge | Types de données pris en charge |
---|---|---|---|---|
ATensor | Entrée | { [BatchCount], [ChannelCount], M, K } | 2 à 4 | INT8, UINT8 |
AZeroPointTensor | Entrée facultative | { [1], [1], AZeroPointCount, [1] } | 1 à 4 | INT8, UINT8 |
BTensor | Entrée | { [BatchCount], [ChannelCount], K, N } | 2 à 4 | INT8, UINT8 |
BZeroPointTensor | Entrée facultative | { [1], [1], [1], BZeroPointCount } | 1 à 4 | INT8, UINT8 |
OutputTensor | Output | { [BatchCount], [ChannelCount], M, N } | 2 à 4 | INT32 |
DML_FEATURE_LEVEL_4_0 et versions ultérieures
Tenseur | Type | Dimensions | Nombre de dimensions pris en charge | Types de données pris en charge |
---|---|---|---|---|
ATensor | Entrée | { [BatchCount], [ChannelCount], M, K } | 2 à 4 | INT8, UINT8 |
AZeroPointTensor | Entrée facultative | { [1], [1], AZeroPointCount, [1] } | 1 à 4 | INT8, UINT8 |
BTensor | Entrée | { [BatchCount], [ChannelCount], K, N } | 2 à 4 | INT8, UINT8 |
BZeroPointTensor | Entrée facultative | { [1], [1], 1, BZeroPointCount } | 2 à 4 | INT8, UINT8 |
OutputTensor | Output | { [BatchCount], [ChannelCount], M, N } | 2 à 4 | INT32 |
DML_FEATURE_LEVEL_2_1 et versions ultérieures
Tenseur | Type | Dimensions | Nombre de dimensions pris en charge | Types de données pris en charge |
---|---|---|---|---|
ATensor | Entrée | { BatchCount, ChannelCount, M, K } | 4 | INT8, UINT8 |
AZeroPointTensor | Entrée facultative | { 1, 1, AZeroPointCount, 1 } | 4 | INT8, UINT8 |
BTensor | Entrée | { BatchCount, ChannelCount, K, N } | 4 | INT8, UINT8 |
BZeroPointTensor | Entrée facultative | { 1, 1, 1, BZeroPointCount } | 4 | INT8, UINT8 |
OutputTensor | Output | { BatchCount, ChannelCount, M, N } | 4 | INT32 |
Spécifications
Client minimal pris en charge | Windows 10 Build 20348 |
Serveur minimal pris en charge | Windows 10 Build 20348 |
En-tête | directml.h |