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

합성곱 신경망에서 합성곱 계산을 im2col 등의 방법으로 행렬 곱으로 변환하여 계산하는 경우가 있는 이유로 올바른 것은 무엇인가?

  1. A변환하면 연산 횟수가 10분의 1이 되기 때문
  2. B고도로 최적화된 행렬 곱 라이브러리나 텐서 코어 같은 행렬 연산기를 사용할 수 있기 때문
  3. C변환하면 메모리 사용량이 반드시 줄기 때문
정답과 해설 보기

정답: B. 고도로 최적화된 행렬 곱 라이브러리나 텐서 코어 같은 행렬 연산기를 사용할 수 있기 때문

im2col은 합성곱의 각 윈도에 들어가는 입력 값을 한 열로 늘어놓은 큰 행렬을 만들고, 필터를 늘어놓은 행렬과의 곱으로 합성곱을 계산하는 방법입니다. 윈도가 겹치는 만큼 입력이 중복되어 메모리는 늘어나지만, 수십 년간 최적화되어 온 행렬 곱 라이브러리나 텐서 코어 같은 행렬 연산기를 그대로 사용할 수 있으므로 전체적으로 빨라지는 경우가 많습니다. 중복을 만들지 않고 같은 일을 하는 구현도 있습니다.

  • A. 연산 횟수는 변하지 않습니다.
  • B. 정답입니다. 다만 입력을 재배열하는 만큼 메모리는 늘어납니다.
  • C. im2col에서는 입력을 중복하여 늘어놓으므로 메모리는 오히려 늘어납니다.
이 분야 연습하기 분야로 돌아가기

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

  1. 학습 후 양자화(PTQ)와 양자화 인지 학습(QAT)의 차이로 올바른 것은 무엇인가?
  2. 활성화를 INT8로 양자화하는 학습 후 양자화에서 수행하는 '캘리브레이션'의 목적으로 올바른 것은 무엇인가?
  3. 대규모 언어 모델의 양자화에서 극히 일부 채널에 큰 이상치가 있으면 정확도가 떨어지기 쉽다. 대책으로 일반적인 것은 무엇인가?
  4. 대규모 언어 모델의 추론에서 활성화는 FP16 그대로 두고 가중치만 4비트로 하는(W4A16) 양자화가 디코드를 특히 빠르게 하는 이유로 올바른 것은 무엇인가?
  5. 신경망의 프루닝(가지치기)에 대해 올바른 것은 무엇인가?