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á BatchCount * ChannelCount número 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 Sizes de , el operador de multiplicación de { BatchCount, ChannelCount, M, N }matriz realizará batchCount * ChannelCount independientes multiplicaciones de matriz de dimensiones {M,K} x {K,N} = {M,N}.

Importante

Esta API está disponible como parte del paquete redistribuible independiente de DirectML (consulte Microsoft.AI.DirectML versión 1.13 y posteriores). Consulte también 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 desquiantizar 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 desquiantizar 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 desquiantizar 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 desquiantizar los valores 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 desquiantizar los valores outputTensor .

OutputZeroPointTensor

Tipo: _Maybenull_ const DML_TENSOR_DESC*

Tensor opcional que contiene los datos de punto cero 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 desquiantizar los valores 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 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 con Tensor

Tensor Variante Dimensiones Recuentos de dimensiones admitidos Supported data types (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