Estructura DML_MATRIX_MULTIPLY_INTEGER_TO_FLOAT_OPERATOR_DESC (directml.h)
Realiza una función de multiplicación de matriz en los datos de tensor de entrada enteros y genera una salida de punto flotante.
Este operador requiere que la matriz multiplique los tensores de entrada para que sean 4D, que tienen el formato { BatchCount, ChannelCount, Height, Width }
. El operador de multiplicación de matriz realizará un número BatchCount * ChannelCount de multiplicaciones de matriz independientes.
Por ejemplo, si ATensor tiene Tamaños de { BatchCount, ChannelCount, M, K }
, y BTensor tiene Tamaños de { BatchCount, ChannelCount, K, N }
, y OutputTensor tiene Tamaños de { BatchCount, ChannelCount, M, N }
, el operador de multiplicación de matriz realizará BatchCount * ChannelCount multiplicaciones de matriz independientes de dimensiones {M,K} x {K,N} = {M,N}.
Importante
Esta API está disponible como parte del paquete redistribuible independiente DirectML (consulte la versión 1.13 y versiones posteriores de Microsoft.AI.DirectML). Consulte también el historial de versiones de DirectML.
Sintaxis
struct DML_MATRIX_MULTIPLY_INTEGER_TO_FLOAT_OPERATOR_DESC
{
const DML_TENSOR_DESC* ATensor;
const DML_TENSOR_DESC* AScaleTensor;
_Maybenull_ const DML_TENSOR_DESC* AZeroPointTensor;
const DML_TENSOR_DESC* BTensor;
const DML_TENSOR_DESC* BScaleTensor;
_Maybenull_ const DML_TENSOR_DESC* BZeroPointTensor;
_Maybenull_ const DML_TENSOR_DESC* BiasTensor;
const DML_TENSOR_DESC* OutputTensor;
};
Miembros
ATensor
Tipo: const DML_TENSOR_DESC*
Tensor que contiene los datos A . Las dimensiones de este tensor deben ser { BatchCount, ChannelCount, M, K }
.
AScaleTensor
Tipo: const DML_TENSOR_DESC*
Tensor que contiene los datos de escala de ATensor. Las dimensiones esperadas de AScaleTensor son { 1, 1, 1, 1 }
si se requiere la cuantificación por tensor o { 1, 1, M, 1 }
si se requiere la cuantificación por fila. Estos valores de escala se usan para descuantificar los valores de ATensor.
AZeroPointTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensor opcional que contiene los datos de punto cero de ATensor. Las dimensiones esperadas de AZeroPointTensor son { 1, 1, 1, 1 }
si se requiere la cuantificación por tensor o { 1, 1, M, 1 }
si se requiere la cuantificación por fila. Estos valores de punto cero se usan para descuantificar los valores de ATensor.
BTensor
Tipo: const DML_TENSOR_DESC*
Tensor que contiene los datos B . Las dimensiones de este tensor deben ser { BatchCount, ChannelCount, K, N }
.
BScaleTensor
Tipo: const DML_TENSOR_DESC*
Tensor que contiene los datos de escala de BTensor. Las dimensiones esperadas de BScaleTensor son { 1, 1, 1, 1 }
si se requiere la cuantificación por tensor o { 1, 1, 1, N }
si se requiere la cuantificación por columna. Estos valores de escala se usan para descuantificar los valores de BTensor.
BZeroPointTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensor opcional que contiene los datos de punto cero de BTensor. Las dimensiones esperadas de BZeroPointTensor son { 1, 1, 1, 1 }
si se requiere la cuantificación por tensor o { 1, 1, 1, N }
si se requiere la cuantificación por columna. Estos valores de punto cero se usan para descuantificar los valores de BTensor.
OutputScaleTensor
Tipo: const DML_TENSOR_DESC*
Tensor que contiene los datos de escala de OutputTensor. Las dimensiones esperadas de OutputScaleTensor son { 1, 1, 1, 1 }
si se requiere la cuantificación por tensor o { 1, 1, M, 1 }
si se requiere la cuantificación por fila. Este valor de escala se usa para descuantificar los valores de OutputTensor.
OutputZeroPointTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensor opcional que contiene los datos de punto cero de OutputTensor. Las dimensiones esperadas de OutputZeroPointTensor son { 1, 1, 1, 1 }
si se requiere la cuantificación por tensor o { 1, 1, M, 1 }
si se requiere la cuantificación por fila. Este valor de punto cero se usa para descuantificar los valores de OutputTensor.
BiasTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensor opcional que contiene los datos de sesgo. Si se proporciona, los Tamaños de este tensor deben coincidir con el tamaño { BatchCount, ChannelCount, M, N }
de salida.
OutputTensor
Tipo: const DML_TENSOR_DESC*
Tensor con el que escribir los resultados. Las dimensiones de este tensor son { BatchCount, ChannelCount, M, N }
.
Disponibilidad
Este operador se introdujo en DML_FEATURE_LEVEL_6_2.
Restricciones de tensor
- AScaleTensor, AZeroPointTensor, BScaleTensor y BZeroPointTensor deben tener el mismo DimensionCount.
- ATensor, BiasTensor, BTensor y OutputTensor deben tener el mismo DimensionCount.
- BiasTensor y OutputTensor deben tener los mismos Tamaños.
- ATensor, AZeroPointTensor, BTensor y BZeroPointTensor deben tener el mismo DataType.
- AScaleTensor, BiasTensor, BScaleTensor y OutputTensor deben tener el mismo DataType.
Compatibilidad del tensor
Tensor | Variante | Dimensiones | Recuentos de dimensiones admitidos | Tipos de datos admitidos |
---|---|---|---|---|
ATensor | Entrada | { [BatchCount], [ChannelCount], M, K } | De 2 a 4 | INT32, INT16, INT8, UINT32, UINT16, UINT8 |
AScaleTensor | Entrada | { AScaleDimensions[] } | De 1 a 4 | FLOAT32, FLOAT16 |
AZeroPointTensor | Entrada opcional | { [1], [1], AZeroPointCount, [1] } | De 1 a 4 | INT32, INT16, INT8, UINT32, UINT16, UINT8 |
BTensor | Entrada | { [BatchCount], [ChannelCount], K, N } | De 2 a 4 | INT32, INT16, INT8, UINT32, UINT16, UINT8 |
BScaleTensor | Entrada | { BScaleDimensions[] } | De 1 a 4 | FLOAT32, FLOAT16 |
BZeroPointTensor | Entrada opcional | { [1], [1], [1], BZeroPointCount } | De 1 a 4 | INT32, INT16, INT8, UINT32, UINT16, UINT8 |
BiasTensor | Entrada opcional | { [BatchCount], [ChannelCount], M, N } | De 2 a 4 | FLOAT32, FLOAT16 |
OutputTensor | Salida | { [BatchCount], [ChannelCount], M, N } | De 2 a 4 | FLOAT32, FLOAT16 |
Requisitos
Encabezado | directml.h |