본문 바로가기

GPU-KERNEL

Tensor Core 기반 GEMM ( 32, 32, 32 ) - Tile / MMA 구조 정리 문서

1. 개요

Tensor Core 기반 GEMM 은 CPU 식 블록 행렬곱이 아니라 K-dimension, accumulate 구조로 이루어진다.

  • M x N 영역 : 고정된 16, 16 tile 로만 분할
  • K 영역 : 16 단위로 쪼개 반복 누산
  • MMA 하나는 16, 16, 16 범위의 부분합 partial sum 연산

이 구조가 GEMM 전체 성능을 결정하며, naive GEMM 사고 방식과 완전히 다르다.

 

2. Tensor Core MMA 기본 연산

MMA ( M 16, N 16, K 16 )

  • A, B, C tile : 16 x 16
  • K - 축은 16개 단위로만 처리 가능
  • 결과는 partial accumulate

MMA 1 번은 C tile 전체를 완성하는 것이 아니라, K 의 특정 범위의 partial sum 을 C tile 에 더하는 역할

 

3. 32 x 32 x 32, GEMM 의 타일링 구조

3.1 M 과 N 방향

32 / 16 = 2

M = 2 tiles, N = 2 tiles, 

C tile 의 C00 부분 생성, 총 4개의 C tile

 

3.2 K 방향

K = 32 / 16 = 2

C tile 하나를 완성하기 위해 필요한 MMA 연산, 각 C tile 마다 MMA 2번 필요

 

4. 총 MMA 연산 수 

Tensor Core MMA 연산 8번으로 완성된다.

 

 

행렬곱은 k 축에 대해 1:1 대응하는 A[k] B[k] 의 곱만 존재,