Compartir a través de


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