Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 |