структура DML_MATRIX_MULTIPLY_INTEGER_OPERATOR_DESC (directml.h)
Выполняет функцию матричного умножения для целочисленных данных.
Для этого оператора требуется, чтобы входные тензоры матричного умножения были 4D, которые имеют формат { BatchCount, ChannelCount, Height, Width }
. Оператор матричного умножения выполнит BatchCount * ChannelCount число независимых матричных умножений.
Например, если параметр ATensor имеет значение Sizes{ BatchCount, ChannelCount, M, K }
, а BTensor имеет значение Sizes{ BatchCount, ChannelCount, K, N }
, а OutputTensor имеет значение Sizes{ BatchCount, ChannelCount, M, N }
, то оператор матричного умножения будет выполнять независимое матричное умножение batchCount * ChannelCount для измерений {M,K} x {K,N} = {M,N}.
struct DML_MATRIX_MULTIPLY_INTEGER_OPERATOR_DESC {
const DML_TENSOR_DESC *ATensor;
const DML_TENSOR_DESC *AZeroPointTensor;
const DML_TENSOR_DESC *BTensor;
const DML_TENSOR_DESC *BZeroPointTensor;
const DML_TENSOR_DESC *OutputTensor;
};
ATensor
Тип: const DML_TENSOR_DESC*
Тензор, содержащий данные A. Измерения этого тензора должны иметь значение { BatchCount, ChannelCount, M, K }
.
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 }
.
BZeroPointTensor
Тип: _Maybenull_ const DML_TENSOR_DESC*
Необязательный тензор, содержащий данные нулевой точки BTensor . Ожидаемые измерения BZeroPointTensor
имеют значение , если требуется { 1, 1, 1, 1 }
квантование по тензору или { 1, 1, 1, N }
требуется квантование по столбцам. Эти значения нулевой точки используются для размечения значений BTensor.
OutputTensor
Тип: const DML_TENSOR_DESC*
Тензор, в который записываются результаты. Измерения этого тензора — { BatchCount, ChannelCount, M, N }
.
Этот оператор появился в DML_FEATURE_LEVEL_2_1
.
- ATensor, BTensor и OutputTensor должны иметь одинаковые значения DimensionCount.
- BTensor и BZeroPointTensor должны иметь один и тот же тип DataType.
- ATensor и AZeroPointTensor должны иметь один и тот же тип DataType.
Тензор | Kind | Измерения | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|---|
ATensor | Входные данные | { [BatchCount], [ChannelCount], M, K } | От 2 до 4 | INT8, UINT8 |
AZeroPointTensor | Необязательные входные данные | { [1], [1], AZeroPointCount, [1] } | от 1 до 4 | INT8, UINT8 |
BTensor | Входные данные | { [BatchCount], [ChannelCount], K, N } | От 2 до 4 | INT8, UINT8 |
BZeroPointTensor | Необязательные входные данные | { [1], [1], [1], BZeroPointCount } | от 1 до 4 | INT8, UINT8 |
OutputTensor | Выходные данные | { [BatchCount], [ChannelCount], M, N } | От 2 до 4 | INT32 |
Тензор | Kind | Измерения | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|---|
ATensor | Входные данные | { [BatchCount], [ChannelCount], M, K } | От 2 до 4 | INT8, UINT8 |
AZeroPointTensor | Необязательные входные данные | { [1], [1], AZeroPointCount, [1] } | от 1 до 4 | INT8, UINT8 |
BTensor | Входные данные | { [BatchCount], [ChannelCount], K, N } | От 2 до 4 | INT8, UINT8 |
BZeroPointTensor | Необязательные входные данные | { [1], [1], 1, BZeroPointCount } | От 2 до 4 | INT8, UINT8 |
OutputTensor | Выходные данные | { [BatchCount], [ChannelCount], M, N } | От 2 до 4 | INT32 |
Тензор | Kind | Измерения | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|---|
ATensor | Входные данные | { BatchCount, ChannelCount, M, K } | 4 | INT8, UINT8 |
AZeroPointTensor | Необязательные входные данные | { 1, 1, AZeroPointCount, 1 } | 4 | INT8, UINT8 |
BTensor | Входные данные | { BatchCount, ChannelCount, K, N } | 4 | INT8, UINT8 |
BZeroPointTensor | Необязательные входные данные | { 1, 1, 1, BZeroPointCount } | 4 | INT8, UINT8 |
OutputTensor | Выходные данные | { BatchCount, ChannelCount, M, N } | 4 | INT32 |
Минимальная версия клиента | Windows 10 сборки 20348 |
Минимальная версия сервера | Windows 10 сборки 20348 |
Верхняя часть | directml.h |