다음을 통해 공유


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, BTensorOutputTensor 에는 동일한 DimensionCount가 있어야 합니다.
  • BTensorBZeroPointTensor 에는 동일한 DataType이 있어야 합니다.
  • ATensorAZeroPointTensor 에는 동일한 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