Freigeben über


DML_MATRIX_MULTIPLY_INTEGER_TO_FLOAT_OPERATOR_DESC-Struktur (directml.h)

Führt eine Matrixmultiplikationsfunktion mit ganzzahligen Tensordaten durch und erzeugt eine Gleitkomma-Ausgabe.

Für diesen Operator muss die Matrix die Eingabe-Tensoren multiplizieren, um 4D zu sein, die als { BatchCount, ChannelCount, Height, Width } formatiert sind. Der Matrixmultiplikationsoperator führt BatchCount * ChannelCount-Anzahl unabhängiger Matrixmultiplikationen durch.

Wenn beispielsweise ATensorGrößen von { BatchCount, ChannelCount, M, K } und BTensorGrößen von { BatchCount, ChannelCount, K, N } und OutputTensorGrößen von { BatchCount, ChannelCount, M, N } hat, führt der Matrixmultiplikationsoperator BatchCount * ChannelCount unabhängige Matrixmultiplikationen von Dimensionen {M,K} x {K,N} = {M,N} = {M,N} aus.

Wichtig

Diese API ist als Teil des eigenständigen weiterverteilbare Pakets DirectML verfügbar (siehe Microsoft.AI.DirectML , Version 1.13 und höher). Siehe auch DirectML-Versionsverlauf.

Syntax

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;
};

Member

ATensor

Typ: const DML_TENSOR_DESC*

Ein Tensor, der die A-Daten enthält. Die Dimensionen dieses Tensors sollten { BatchCount, ChannelCount, M, K } sein.

AScaleTensor

Typ: const DML_TENSOR_DESC*

Ein Tensor, der die ATensor-Skalierungsdaten enthält. Die erwarteten Dimensionen von AScaleTensor sind { 1, 1, 1, 1 } , wenn die Quantisierung pro Tensor erforderlich ist oder { 1, 1, M, 1 }, wenn die Quantisierung pro Zeile erforderlich ist. Diese Skalierungswerte werden zum Dequantisieren der ATensor-Werte verwendet.

AZeroPointTensor

Typ: _Maybenull_ const DML_TENSOR_DESC*

Ein optionaler Tensor, der die ATensor-Nullpunktdaten enthält. Die erwarteten Dimensionen von AZeroPointTensor sind { 1, 1, 1, 1 } , wenn die Quantisierung pro Tensor erforderlich ist oder { 1, 1, M, 1 }, wenn die Quantisierung pro Zeile erforderlich ist. Diese Nullpunktwerte werden zum Dequantisieren der ATensor-Werte verwendet.

BTensor

Typ: const DML_TENSOR_DESC*

Ein Tensor, der die B-Daten enthält. Die Dimensionen dieses Tensors sollten { BatchCount, ChannelCount, K, N } sein.

BScaleTensor

Typ: const DML_TENSOR_DESC*

Ein Tensor, der die BTensor-Skalierungsdaten enthält. Die erwarteten Dimensionen von BScaleTensor sind { 1, 1, 1, 1 } , wenn die Quantisierung pro Tensor erforderlich ist oder { 1, 1, 1, N }, wenn die Quantisierung pro Spalte erforderlich ist. Diese Skalierungswerte werden zum Dequantisieren der BTensor-Werte verwendet.

BZeroPointTensor

Typ: _Maybenull_ const DML_TENSOR_DESC*

Ein optionaler Tensor, der die BTensor-Nullpunktdaten enthält. Die erwarteten Dimensionen von BZeroPointTensor sind { 1, 1, 1, 1 } , wenn die Quantisierung pro Tensor erforderlich ist oder { 1, 1, 1, N }, wenn die Quantisierung pro Spalte erforderlich ist. Diese Nullpunktwerte werden zum Dequantisieren der BTensor-Werte verwendet.

OutputScaleTensor

Typ: const DML_TENSOR_DESC*

Ein Tensor, der die OutputTensor-Skalierungsdaten enthält. Die erwarteten Dimensionen von OutputScaleTensor sind { 1, 1, 1, 1 } , wenn die Quantisierung pro Tensor erforderlich ist oder { 1, 1, M, 1 }, wenn die Quantisierung pro Zeile erforderlich ist. Dieser Skalierungswert wird zum Dequantisieren der OutputTensor-Werte verwendet.

OutputZeroPointTensor

Typ: _Maybenull_ const DML_TENSOR_DESC*

Ein optionaler Tensor, der die OutputTensor-Nullpunktdaten enthält. Die erwarteten Dimensionen von OutputZeroPointTensor sind { 1, 1, 1, 1 } , wenn die Quantisierung pro Tensor erforderlich ist oder { 1, 1, M, 1 }, wenn die Quantisierung pro Zeile erforderlich ist. Dieser Nullpunktwert wird zum Dequantisieren der OutputTensor-Werte verwendet.

BiasTensor

Typ: _Maybenull_ const DML_TENSOR_DESC*

Ein optionaler Tensor, der die Bias-Daten enthält. Wenn angegeben, sollte die Größen dieses Tensors mit der Ausgabegröße { BatchCount, ChannelCount, M, N } übereinstimmen.

OutputTensor

Typ: const DML_TENSOR_DESC*

Ein Tensor, in den die Ergebnisse geschrieben werden sollen. Die Dimensionen dieses Tensors sind { BatchCount, ChannelCount, M, N }.

Verfügbarkeit

Dieser Operator wurde in DML_FEATURE_LEVEL_6_2 eingeführt.

Tensor-Einschränkungen

  • AScaleTensor, AZeroPointTensor, BScaleTensor und BZeroPointTensor müssen denselben DimensionCount aufweisen.
  • ATensor, BiasTensor, BTensor und OutputTensor müssen denselben DimensionCount aufweisen.
  • BiasTensor und OutputTensor müssen dieselben Größen aufweisen.
  • ATensor, AZeroPointTensor, BTensor und BZeroPointTensor müssen denselben Datentyp aufweisen.
  • AScaleTensor, BiasTensor, BScaleTensor und OutputTensor müssen denselben Datentyp aufweisen.

Tensor-Unterstützung

Tensor Variante Dimensionen Unterstützte Dimensionsanzahl Unterstützte Datentypen
ATensor Eingabe { [BatchCount], [ChannelCount], M, K } 2 bis 4 INT32, INT16, INT8, UINT32, UINT16, UINT8
AScaleTensor Eingabe { AScaleDimensions[] } 1 bis 4 FLOAT32, FLOAT16
AZeroPointTensor Optionale Eingabe { [1], [1], AZeroPointCount, [1] } 1 bis 4 INT32, INT16, INT8, UINT32, UINT16, UINT8
BTensor Eingabe { [BatchCount], [ChannelCount], K, N } 2 bis 4 INT32, INT16, INT8, UINT32, UINT16, UINT8
BScaleTensor Eingabe { BScaleDimensions[] } 1 bis 4 FLOAT32, FLOAT16
BZeroPointTensor Optionale Eingabe { [1], [1], [1], BZeroPointCount } 1 bis 4 INT32, INT16, INT8, UINT32, UINT16, UINT8
BiasTensor Optionale Eingabe { [BatchCount], [ChannelCount], M, N } 2 bis 4 FLOAT32, FLOAT16
OutputTensor Output { [BatchCount], [ChannelCount], M, N } 2 bis 4 FLOAT32, FLOAT16

Anforderungen

   
Übergeordnet directml.h