AI 하드웨어·소프트웨어 스택

M×K 행렬과 K×N 행렬의 곱을 계산할 때의 부동소수점 연산 횟수(곱셈과 덧셈을 따로 센다)는 대략 얼마인가?

  1. AMNK
  2. BM+N+K
  3. C2MNK
정답과 해설 보기

정답: C. 2MNK

결과 행렬은 M×N개의 요소를 가지며 각 요소는 길이 K의 내적이므로, K번의 곱셈과 K번의 덧셈(거의 K번)이 필요합니다. 합하면 약 2MNK번의 연산이 됩니다. AI의 계산량은 이 식으로 어림하는 경우가 많고, 성능은 초당 연산 횟수(FLOPS)로 나타냅니다. 곱셈-덧셈(MAC)을 1회로 세는 경우에는 절반인 MNK가 되므로, 어느 쪽으로 세고 있는지 주의가 필요합니다.

  • A. 이것은 곱셈-덧셈을 1회로 센 경우의 수입니다.
  • B. 연산 수는 훨씬 많아집니다.
  • C. 정답입니다. 각 요소에서 K번의 곱셈과 덧셈을 수행합니다.
이 분야 연습하기 분야로 돌아가기

AI 하드웨어·소프트웨어 스택의 다른 문제

  1. N×N의 FP16(2바이트) 행렬끼리의 곱에서, 두 입력을 한 번씩 읽고 결과를 한 번 쓴다고 하자. 연산 강도(1바이트당 연산 수)는 대략 얼마인가?
  2. 피크 성능 100 TFLOPS, 메모리 대역폭 2 TB/s의 가속기에서 연산 강도가 10 FLOP/바이트인 처리를 실행한다. Roofline 모델로 어림한 달성 가능한 성능은 얼마인가?
  3. 입력이 하나뿐일 때(배치 크기 1), 완전 연결층의 계산(가중치 행렬과 벡터의 곱)이 메모리 율속이 되기 쉬운 이유로 올바른 것은 무엇인가?
  4. 추론에서 배치 크기(한꺼번에 처리하는 입력의 수)를 키우면 전체 처리 효율이 올라가기 쉬운 이유는 무엇인가?
  5. 추론에서 배치 크기를 지나치게 키웠을 때의 단점으로 올바른 것은 무엇인가?