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] 의 곱만 존재,
'GPU-KERNEL' 카테고리의 다른 글
| 이상적인 Epilogue Kernel 구현 - FlashAttention 을 보며... (1) | 2025.12.09 |
|---|---|
| Nsight Compute / ncu 권한 문제 해결 가이드 (Windows + GeForce) (0) | 2025.12.04 |
| TN 에 이어서 occupancy 측정 (0) | 2025.11.30 |
| Register Tiling TN Sweep test TN 이 증가하면, ILP (Instruction Level Parallelism) 증가 (0) | 2025.11.30 |
| 헐 lane 과 bank 가 다른 개념이었어, 숫자만 32로 동일한 것 - 여기서 swizzle 의 등장 (0) | 2025.11.30 |