estrutura DML_MATRIX_MULTIPLY_INTEGER_OPERATOR_DESC (directml.h)
Executa uma função de multiplicação de matriz em dados inteiros.
Esse operador exige que os tensores de entrada de multiplicação de matriz sejam 4D, que são formatados como { BatchCount, ChannelCount, Height, Width }
. O operador de multiplicação de matriz executará BatchCount * ChannelCount número de multiplicações de matriz independentes.
Por exemplo, se ATensor tiver Tamanhos de { BatchCount, ChannelCount, M, K }
e BTensor tiver Tamanhos de { BatchCount, ChannelCount, K, N }
e OutputTensor tiver Tamanhos de { BatchCount, ChannelCount, M, N }
, o operador de multiplicação de matriz executará multiplicações de matriz independentes BatchCount * ChannelCount das dimensões {M,K} x {K,N} = {M,N}.
Sintaxe
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;
};
Membros
ATensor
Tipo: const DML_TENSOR_DESC*
Um tensor que contém os dados A. As dimensões desse tensor devem ser { BatchCount, ChannelCount, M, K }
.
AZeroPointTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Um tensor opcional que contém os dados de ponto zero do ATensor. As dimensões esperadas do AZeroPointTensor
serão { 1, 1, 1, 1 }
se a quantização por tensor for necessária ou { 1, 1, M, 1 }
se a quantização por linha for necessária. Esses valores de ponto zero são usados para desquantizar os valores de ATensor .
BTensor
Tipo: const DML_TENSOR_DESC*
Um tensor que contém os dados B. As dimensões desse tensor devem ser { BatchCount, ChannelCount, K, N }
.
BZeroPointTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Um tensor opcional que contém os dados de ponto zero BTensor . As dimensões esperadas do BZeroPointTensor
serão { 1, 1, 1, 1 }
se a quantização por tensor for necessária ou { 1, 1, 1, N }
se a quantização por coluna for necessária. Esses valores de ponto zero são usados para desquantizar os valores de BTensor.
OutputTensor
Tipo: const DML_TENSOR_DESC*
Um tensor no qual gravar os resultados. As dimensões desse tensor são { BatchCount, ChannelCount, M, N }
.
Disponibilidade
Esse operador foi introduzido no DML_FEATURE_LEVEL_2_1
.
Restrições do Tensor
- ATensor, BTensor e OutputTensor devem ter o mesmo DimensionCount.
- BTensor e BZeroPointTensor devem ter o mesmo DataType.
- ATensor e AZeroPointTensor devem ter o mesmo DataType.
Suporte ao Tensor
DML_FEATURE_LEVEL_5_2 e superior
Tensor | Tipo | Dimensões | Contagens de dimensões com suporte | Tipos de dados com suporte |
---|---|---|---|---|
Atensor | Entrada | { [BatchCount], [ChannelCount], M, K } | 2 a 4 | INT8, UINT8 |
AZeroPointTensor | Entrada opcional | { [1], [1], AZeroPointCount, [1] } | 1 a 4 | INT8, UINT8 |
BTensor | Entrada | { [BatchCount], [ChannelCount], K, N } | 2 a 4 | INT8, UINT8 |
BZeroPointTensor | Entrada opcional | { [1], [1], [1], BZeroPointCount } | 1 a 4 | INT8, UINT8 |
OutputTensor | Saída | { [BatchCount], [ChannelCount], M, N } | 2 a 4 | INT32 |
DML_FEATURE_LEVEL_4_0 e superior
Tensor | Tipo | Dimensões | Contagens de dimensões com suporte | Tipos de dados com suporte |
---|---|---|---|---|
Atensor | Entrada | { [BatchCount], [ChannelCount], M, K } | 2 a 4 | INT8, UINT8 |
AZeroPointTensor | Entrada opcional | { [1], [1], AZeroPointCount, [1] } | 1 a 4 | INT8, UINT8 |
BTensor | Entrada | { [BatchCount], [ChannelCount], K, N } | 2 a 4 | INT8, UINT8 |
BZeroPointTensor | Entrada opcional | { [1], [1], 1, BZeroPointCount } | 2 a 4 | INT8, UINT8 |
OutputTensor | Saída | { [BatchCount], [ChannelCount], M, N } | 2 a 4 | INT32 |
DML_FEATURE_LEVEL_2_1 e superior
Tensor | Tipo | Dimensões | Contagens de dimensões com suporte | Tipos de dados com suporte |
---|---|---|---|---|
Atensor | Entrada | { BatchCount, ChannelCount, M, K } | 4 | INT8, UINT8 |
AZeroPointTensor | Entrada opcional | { 1, 1, AZeroPointCount, 1 } | 4 | INT8, UINT8 |
BTensor | Entrada | { BatchCount, ChannelCount, K, N } | 4 | INT8, UINT8 |
BZeroPointTensor | Entrada opcional | { 1, 1, 1, BZeroPointCount } | 4 | INT8, UINT8 |
OutputTensor | Saída | { BatchCount, ChannelCount, M, N } | 4 | INT32 |
Requisitos
Cliente mínimo com suporte | Windows 10 Build 20348 |
Servidor mínimo com suporte | Windows 10 Build 20348 |
Cabeçalho | directml.h |