DML_MATRIX_MULTIPLY_INTEGER_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 }
가 인 경우 행렬 곱하기 연산자는 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 0포인트 데이터를 포함하는 선택적 텐서입니다. 의 예상 차원 AZeroPointTensor
{ 1, 1, 1, 1 }
은 텐서당 양자화가 필요한 경우 또는 { 1, 1, M, 1 }
행별 양자화가 필요한 경우 입니다. 이러한 0포인트 값은 ATensor 값의 시한을 지정하는 데 사용됩니다.
BTensor
형식: const DML_TENSOR_DESC*
B 데이터를 포함하는 텐서입니다. 이 텐서의 차원은 이어야 { BatchCount, ChannelCount, K, N }
합니다.
BZeroPointTensor
형식: _Maybenull_ const DML_TENSOR_DESC*
BTensor 0포인트 데이터를 포함하는 선택적 텐서입니다. 의 예상 차원 BZeroPointTensor
{ 1, 1, 1, 1 }
은 텐서당 양자화가 필요하거나 { 1, 1, 1, N }
열당 양자화가 필요한 경우 입니다. 이러한 0포인트 값은 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이 있어야 합니다.
텐서 지원
DML_FEATURE_LEVEL_5_2 이상
텐서 | 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 |
DML_FEATURE_LEVEL_4_0 이상
텐서 | 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 |
DML_FEATURE_LEVEL_2_1 이상
텐서 | 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 |