struttura DML_MATRIX_MULTIPLY_INTEGER_OPERATOR_DESC (directml.h)
Esegue una funzione di moltiplicazione della matrice sui dati integer.
Questo operatore richiede che i tensori di input di moltiplicazione della matrice siano 4D, formattati come { BatchCount, ChannelCount, Height, Width }
. L'operatore di moltiplicazione della matrice eseguirà BatchCount * ChannelCount numero di moltiplicazioni di matrici indipendenti.
Ad esempio, se ATensor ha dimensioni pari { BatchCount, ChannelCount, M, K }
a e BTensor ha dimensioni pari { BatchCount, ChannelCount, K, N }
a e OutputTensor ha dimensioni pari { BatchCount, ChannelCount, M, N }
a , l'operatore di moltiplicazione della matrice eseguirà BatchCount * Moltiplicazioni di matrici indipendenti ChannelCount di dimensioni {M,K} x {K,N} = {M,N}.
Sintassi
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;
};
Members
ATensor
Tipo: const DML_TENSOR_DESC*
Tensore contenente i dati A. Le dimensioni del tensore devono essere { BatchCount, ChannelCount, M, K }
.
AZeroPointTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensore facoltativo contenente i dati del punto zero ATensor. Le dimensioni previste di AZeroPointTensor
sono { 1, 1, 1, 1 }
se è necessaria la quantizzazione per tensore o { 1, 1, M, 1 }
se è necessaria la quantizzazione per riga. Questi valori dei punti zero vengono usati per dequantizzare i valori ATensor .
BTensor
Tipo: const DML_TENSOR_DESC*
Tensore contenente i dati B. Le dimensioni del tensore devono essere { BatchCount, ChannelCount, K, N }
.
BZeroPointTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensore facoltativo contenente i dati del punto zero BTensor . Le dimensioni previste di BZeroPointTensor
sono { 1, 1, 1, 1 }
se è necessaria la quantizzazione per tensore o { 1, 1, 1, N }
se è necessaria la quantizzazione per colonna. Questi valori dei punti zero vengono usati per dequantizzare i valori BTensor.
OutputTensor
Tipo: const DML_TENSOR_DESC*
Tensore in cui scrivere i risultati. Le dimensioni di questo tensore sono { BatchCount, ChannelCount, M, N }
.
Disponibilità
Questo operatore è stato introdotto in DML_FEATURE_LEVEL_2_1
.
Vincoli tensor
- ATensor, BTensor e OutputTensor devono avere lo stesso DimensionCount.
- BTensor e BZeroPointTensor devono avere lo stesso Tipo di dati.
- ATensor e AZeroPointTensor devono avere lo stesso Tipo di dati.
Supporto di Tensor
DML_FEATURE_LEVEL_5_2 e versioni successive
Tensore | Tipo | Dimensioni | Conteggi delle dimensioni supportati | Tipi di dati supportati |
---|---|---|---|---|
ATensor | Input | { [BatchCount], [ChannelCount], M, K } | da 2 a 4 | INT8, UINT8 |
AZeroPointTensor | Input facoltativo | { [1], [1], AZeroPointCount, [1] } | da 1 a 4 | INT8, UINT8 |
BTensor | Input | { [BatchCount], [ChannelCount], K, N } | da 2 a 4 | INT8, UINT8 |
BZeroPointTensor | Input facoltativo | { [1], [1], [1], BZeroPointCount } | da 1 a 4 | INT8, UINT8 |
OutputTensor | Output | { [BatchCount], [ChannelCount], M, N } | da 2 a 4 | INT32 |
DML_FEATURE_LEVEL_4_0 e versioni successive
Tensore | Tipo | Dimensioni | Conteggi delle dimensioni supportati | Tipi di dati supportati |
---|---|---|---|---|
ATensor | Input | { [BatchCount], [ChannelCount], M, K } | da 2 a 4 | INT8, UINT8 |
AZeroPointTensor | Input facoltativo | { [1], [1], AZeroPointCount, [1] } | da 1 a 4 | INT8, UINT8 |
BTensor | Input | { [BatchCount], [ChannelCount], K, N } | da 2 a 4 | INT8, UINT8 |
BZeroPointTensor | Input facoltativo | { [1], [1], 1, BZeroPointCount } | da 2 a 4 | INT8, UINT8 |
OutputTensor | Output | { [BatchCount], [ChannelCount], M, N } | da 2 a 4 | INT32 |
DML_FEATURE_LEVEL_2_1 e versioni successive
Tensore | Tipo | Dimensioni | Conteggi delle dimensioni supportati | Tipi di dati supportati |
---|---|---|---|---|
ATensor | Input | { BatchCount, ChannelCount, M, K } | 4 | INT8, UINT8 |
AZeroPointTensor | Input facoltativo | { 1, 1, AZeroPointCount, 1 } | 4 | INT8, UINT8 |
BTensor | Input | { BatchCount, ChannelCount, K, N } | 4 | INT8, UINT8 |
BZeroPointTensor | Input facoltativo | { 1, 1, 1, BZeroPointCount } | 4 | INT8, UINT8 |
OutputTensor | Output | { BatchCount, ChannelCount, M, N } | 4 | INT32 |
Requisiti
Client minimo supportato | Windows 10 Build 20348 |
Server minimo supportato | Windows 10 Build 20348 |
Intestazione | directml.h |