Skinny & Tall Matrix Multiplication이 Memory-Bound인 이유

daewoo kim
4 min readJun 6, 2021

--

Skinny & Tall Matrix Multiplication이 많을수록 딥러닝 알고리즘의 성능에 영향을 미친다..

GEMM (GEneral Matrix Multiplication)

선형대수 커널은 scientific simulation, big data analytics, machine learning에 널리 사용된다. 그 중에서 GEMM 연산이 가장 핵심이다. GEMM 연산은 GEMM의 입력 모양에 따라 Computation bound 연산과 Memory bound 연산으로 나눌 수 있다.

  • Computation bound 연산: 응용의 성능이 computation power에 제한됨
  • Memory bound 연산: 응용의 성능이 memory bandwidth에 제한됨

GEMM 연산은 일반적으로 Computation bound 연산이다. 하지만 GEMM 연산 중 다음과 같은 두가지 조건에서 bandwidth bound로 인해 Memory bound 연산으로 분류되며 Memory bound 연산에 의해 CPU/GPU Utilization가 낮다.

  • (1) 입력이 tall & skinny 형태의 Matrix Multiplication(n >> k, n > 10000, k <100)인 경우
  • (2) Large Input Matrix가 메인 메모리에 있는 경우

일반적으로 데이터들은 메모리 상에 row-based로 저장된다. 하지만 Tall & skinny matrix는 낮은 locality 때문에 필요한 데이터를 cache에서 발견할 확률이 떨어지기 때문에 TSMM(Tall & Skinny Matrix Multiplication)은 memory-bound 연산이다.

TSMM(Tall & Skinny Matrix Multiplication)

데이터센터에서 DL 추론 태스크는 다음과 같은 조건을 모두 충족하는 경우가 많아 TSMM인 경우 많다.

  • DL 추론 쿼리는 small batches를 필요로하는 엄격한 지연시간 제약이 있다. FC 레이어의 해당 GEMM 연산은 large weight 행렬과 small input 행렬의 곱셈으로 이루어져 있다.
  • MLP weight가 메인 메모리에서만 발견된다. 1) MLP 매개 변수의 총 크기가 캐시 용량을 초과하거나, 2) Single 노드에 여러 모델이 함께 공존하기 때문이다. (Single Node에 시스템 효율성을 개선하고 멀티 모델 쿼리 latency를 줄이기 위해 멀티 모델을 같이 위치시키는 것이 보통이다.)

레퍼런스

[1] Accelerating Bandwidth-Bound Deep Learning Inference with Main-Memory Accelerators

[2] Performance Engineering for a Tall & Skinny Matrix Multiplication Kernel on GPUs

[3] TSM2: Optimizing Tall-and-Skinny MatrixMatrix Multiplication on GPUs

--

--

daewoo kim
daewoo kim

Written by daewoo kim

AI developer & Author | Working@semiconductor-industry. I write and share about what I learn.

No responses yet