DML_MATRIX_MULTIPLY_INTEGER_TO_FLOAT_OPERATOR_DESC 構造体 (directml.h)
整数入力テンソル データに対してマトリックス乗算関数を実行し、浮動小数点出力を生成します。
この演算子では、マトリックス乗算入力テンソルを 4D にする必要があります。これは { BatchCount, ChannelCount, Height, Width }
のように 書式設定されます。 マトリックス乗算演算子は、独立した行列乗算の BatchCount * ChannelCount 数を実行します。
たとえば、ATensor のサイズが { BatchCount, ChannelCount, M, K }
、BTensor のサイズが { BatchCount, ChannelCount, K, N }
、および OutputTensor のサイズが { BatchCount, ChannelCount, M, N }
の場合、マトリックス乗算演算子は、次元 {M,K} x {K,N} = {M,N} の BatchCount * ChannelCount 独立マトリックス乗算を実行します。
重要
この API は、DirectML スタンドアロン再頒布可能パッケージの一部として使用できます (Microsoft.AI.DirectML バージョン 1.13 以降を参照してください)。 DirectML バージョン履歴も参照してください。
構文
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;
};
メンバー
ATensor
型: const DML_TENSOR_DESC*
A データを含むテンソル。 このテンソルの次元は { BatchCount, ChannelCount, M, K }
になります。
AScaleTensor
型: const DML_TENSOR_DESC*
ATensor スケール データを含むテンソル。 AScaleTensor の予想される次元は、テンソル単位の量子化が必要な場合は { 1, 1, 1, 1 }
、行単位の量子化が必要な場合は { 1, 1, M, 1 }
です。 これらのスケール値は、ATensor 値をデカンタイズするために使用されます。
AZeroPointTensor
型: _Maybenull_ const DML_TENSOR_DESC*
ATensor ゼロ ポイント データを含む省略可能なテンソル。 AZeroPointTensor の予想される次元は、テンソル単位の量子化が必要な場合は { 1, 1, 1, 1 }
、行単位の量子化が必要な場合は { 1, 1, M, 1 }
です。 これらのゼロ ポイント値は、ATensor 値をデカンタイズするために使用されます。
BTensor
型: const DML_TENSOR_DESC*
B データを含むテンソル。 このテンソルの次元は { BatchCount, ChannelCount, K, N }
になります。
BScaleTensor
型: const DML_TENSOR_DESC*
BTensor スケール データを含むテンソル。 BScaleTensor の予想される次元は、テンソル単位の量子化が必要な場合は { 1, 1, 1, 1 }
、列単位の量子化が必要な場合は { 1, 1, 1, N }
です。 これらのスケール値は、BTensor 値をデカンタイズするために使用されます。
BZeroPointTensor
型: _Maybenull_ const DML_TENSOR_DESC*
BTensor ゼロ ポイント データを含む省略可能なテンソル。 BZeroPointTensor の予想される次元は、テンソル単位の量子化が必要な場合は { 1, 1, 1, 1 }
、列単位の量子化が必要な場合は { 1, 1, 1, N }
です。 これらのゼロ ポイント値は、BTensor 値をデカンタイズするために使用されます。
OutputScaleTensor
型: const DML_TENSOR_DESC*
OutputTensor スケール データを含むテンソル。 OutputScaleTensor の予想される次元は、テンソル単位の量子化が必要な場合は { 1, 1, 1, 1 }
、行単位の量子化が必要な場合は { 1, 1, M, 1 }
です。 このスケール値は、OutputTensor 値をデカンタイズするために使用されます。
OutputZeroPointTensor
型: _Maybenull_ const DML_TENSOR_DESC*
OutputTensor のゼロ ポイント データを含む省略可能なテンソル。 OutputZeroPointTensor の予想される次元は、テンソル単位の量子化が必要な場合は { 1, 1, 1, 1 }
、行単位の量子化が必要な場合は { 1, 1, M, 1 }
です。 このゼロ ポイント値は、OutputTensor 値をデカンタイズするために使用されます。
BiasTensor
型: _Maybenull_ const DML_TENSOR_DESC*
バイアス データを含む省略可能なテンソル。 指定した場合、このテンソルの サイズ は出力サイズ { BatchCount, ChannelCount, M, N }
と一致する必要があります。
OutputTensor
型: const DML_TENSOR_DESC*
結果を書き込む先のテンソル。 このテンソルの次元は { BatchCount, ChannelCount, M, N }
です。
可用性
この演算子は、DML_FEATURE_LEVEL_6_2 で導入されました。
Tensor 制約
- AScaleTensor、AZeroPointTensor、BScaleTensor、および BZeroPointTensor は、同じ DimensionCount を持つ必要があります。
- ATensor、BiasTensor、BTensor、および OutputTensor は、同じ DimensionCount を持つ必要があります。
- BiasTensor と OutputTensor のサイズは同じである必要があります。
- ATensor、AZeroPointTensor、BTensor、BZeroPointTensor は、同じ DataType を持つ必要があります。
- AScaleTensor、BiasTensor、BScaleTensor、および OutputTensor は、同じ DataType を持つ必要があります。
Tensor のサポート
Tensor | 種類 | Dimensions | サポートされているディメンション数 | サポートされるデータ型 |
---|---|---|---|---|
ATensor | 入力 | { [BatchCount], [ChannelCount], M, K } | 2 から 4 | INT32、INT16、INT8、UINT32、UINT16、UINT8 |
AScaleTensor | 入力 | { AScaleDimensions[] } | 1 から 4 | FLOAT32、FLOAT16 |
AZeroPointTensor | 省略可能な入力 | { [1], [1], AZeroPointCount, [1] } | 1 から 4 | INT32、INT16、INT8、UINT32、UINT16、UINT8 |
BTensor | 入力 | { [BatchCount], [ChannelCount], K, N } | 2 から 4 | INT32、INT16、INT8、UINT32、UINT16、UINT8 |
BScaleTensor | 入力 | { BScaleDimensions[] } | 1 から 4 | FLOAT32、FLOAT16 |
BZeroPointTensor | 省略可能な入力 | { [1], [1], [1], BZeroPointCount } | 1 から 4 | INT32、INT16、INT8、UINT32、UINT16、UINT8 |
BiasTensor | 省略可能な入力 | { [BatchCount], [ChannelCount], M, N } | 2 から 4 | FLOAT32、FLOAT16 |
OutputTensor | 出力 | { [BatchCount], [ChannelCount], M, N } | 2 から 4 | FLOAT32、FLOAT16 |
要件
ヘッダー | directml.h |