Sdílet prostřednictvím


DML_MATRIX_MULTIPLY_INTEGER_TO_FLOAT_OPERATOR_DESC struktura (directml.h)

Provede násobení matice na celočíselná vstupní data tensoru a vytvoří výstup s plovoucí desetinnou čárkou.

Tento operátor vyžaduje násobení vstupních tenzorů matice 4D, které jsou formátovány jako { BatchCount, ChannelCount, Height, Width }. Operátor násobení matice provede BatchCount * ChannelCount počet nezávislých násobení matice.

Pokud má například ATensorvelikost{ BatchCount, ChannelCount, M, K }a BTensor má velikosti a OutputTensor{ BatchCount, ChannelCount, K, N }{ BatchCount, ChannelCount, M, N }, operátor násobení matice provede batchCount * ChannelCount nezávislé násobení matice násobení dimenzí {M,K} x {K,N} = {M,N}.

Důležité

Toto rozhraní API je k dispozici jako součást samostatného distribuovatelného balíčku DirectML (viz Microsoft.AI.DirectML verze 1.13 a novější). Podívejte se také na historii verzí DirectML.

Syntaxe

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

Členové

ATensor

Typ: const DML_TENSOR_DESC*

Tensor obsahující data A . Rozměry tohoto tensoru by měly být { BatchCount, ChannelCount, M, K }.

AScaleTensor

Typ: const DML_TENSOR_DESC*

Tensor obsahující data škálování ATensoru Očekávané dimenze AScaleTensoru jsou { 1, 1, 1, 1 } v případě, že se vyžaduje kvantování podle tensoru, nebo { 1, 1, M, 1 } pokud je vyžadováno kvantování podle řádku. Tyto hodnoty škálování se používají k dequantizaci hodnot ATensoru .

AZeroPointTensor

Typ: _Maybenull_ const DML_TENSOR_DESC*

Volitelný tensor obsahující data nulového bodu ATensoru . Očekávané dimenze AZeroPointTensor jsou { 1, 1, 1, 1 } v případě, že se vyžaduje kvantování podle tensoru, nebo { 1, 1, M, 1 } pokud je vyžadováno kvantování podle řádku. Tyto nulové hodnoty bodu se používají k dequantizaci hodnot ATensor .

BTensor

Typ: const DML_TENSOR_DESC*

Tensor obsahující data B . Rozměry tohoto tensoru by měly být { BatchCount, ChannelCount, K, N }.

BScaleTensor

Typ: const DML_TENSOR_DESC*

Tensor obsahující data měřítka BTensoru . Očekávané dimenze BScaleTensoru jsou { 1, 1, 1, 1 } v případě, že se vyžaduje kvantování podle tensoru, nebo { 1, 1, 1, N } pokud se vyžaduje kvantování podle sloupce. Tyto hodnoty škálování se používají k dequantizaci hodnot BTensor .

BZeroPointTensor

Typ: _Maybenull_ const DML_TENSOR_DESC*

Volitelný tensor obsahující data nulového bodu BTensoru . Očekávané dimenze BZeroPointTensor jsou { 1, 1, 1, 1 } v případě, že se vyžaduje kvantování podle tensoru, nebo { 1, 1, 1, N } pokud je požadováno kvantování podle sloupce. Tyto nulové hodnoty bodu se používají k dequantizaci hodnot BTensor .

OutputScaleTensor

Typ: const DML_TENSOR_DESC*

Tensor obsahující data škálování outputtensoru Očekávané dimenze OutputScaleTensoru jsou { 1, 1, 1, 1 } v případě, že se vyžaduje kvantování podle tensoru nebo { 1, 1, M, 1 } pokud je požadováno kvantování podle řádku. Tato hodnota škálování se používá k dequantizaci hodnot OutputTensor .

OutputZeroPointTensor

Typ: _Maybenull_ const DML_TENSOR_DESC*

Volitelný tensor obsahující data nulového bodu OutputTensoru . Očekávané dimenze outputZeroPointTensor jsou { 1, 1, 1, 1 } v případě, že se vyžaduje kvantování podle tensoru, nebo { 1, 1, M, 1 } pokud je vyžadováno kvantování podle řádku. Tato nulová hodnota bodu se používá k dequantizaci hodnot OutputTensor .

BiasTensor

Typ: _Maybenull_ const DML_TENSOR_DESC*

Volitelný tensor obsahující data předsudků. V případě potřeby by velikost tohoto tensoru měla odpovídat velikosti { BatchCount, ChannelCount, M, N }výstupu .

OutputTensor

Typ: const DML_TENSOR_DESC*

Tenzor, se kterým chcete napsat výsledky. Rozměry tohoto tensoru jsou { BatchCount, ChannelCount, M, N }.

Dostupnost

Tento operátor byl zaveden v DML_FEATURE_LEVEL_6_2.

Omezení Tensoru

  • AScaleTensor, AZeroPointTensor, BScaleTensor a BZeroPointTensor musí mít stejné dimenze.
  • ATensor, BiasTensor, BTensor a OutputTensor musí mít stejný Počet dimenzí.
  • Funkce BiasTensor a OutputTensor musí mít stejné velikosti.
  • ATensor, AZeroPointTensor, BTensor a BZeroPointTensor musí mít stejný datový typ.
  • AScaleTensor, BiasTensor, BScaleTensor a OutputTensor musí mít stejný datový typ.

Podpora tensoru

Tenzor Laskavý Dimenze Podporované počty dimenzí Podporované datové typy
ATensor Vstup { [BatchCount], [ChannelCount], M, K } 2 až 4 INT32, INT16, INT8, UINT32, UINT16, UINT8
AScaleTensor Vstup { AScaleDimensions[] } 1 až 4 FLOAT32, FLOAT16
AZeroPointTensor Volitelný vstup { [1], [1], AZeroPointCount, [1] } 1 až 4 INT32, INT16, INT8, UINT32, UINT16, UINT8
BTensor Vstup { [BatchCount], [ChannelCount], K, N } 2 až 4 INT32, INT16, INT8, UINT32, UINT16, UINT8
BScaleTensor Vstup { BScaleDimensions[] } 1 až 4 FLOAT32, FLOAT16
BZeroPointTensor Volitelný vstup { [1], [1], [1], BZeroPointCount } 1 až 4 INT32, INT16, INT8, UINT32, UINT16, UINT8
OdchylkaTensor Volitelný vstup { [BatchCount], [ChannelCount], M, N } 2 až 4 FLOAT32, FLOAT16
Výstupnítensor Výstup { [BatchCount], [ChannelCount], M, N } 2 až 4 FLOAT32, FLOAT16

Požadavky

   
Záhlaví directml.h