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

입력이 하나뿐일 때(배치 크기 1), 완전 연결층의 계산(가중치 행렬과 벡터의 곱)이 메모리 율속이 되기 쉬운 이유로 올바른 것은 무엇인가?

  1. A벡터의 요소 수가 너무 많아 연산기에 다 들어가지 않기 때문
  2. B행렬과 벡터의 곱은 GPU에서는 계산할 수 없기 때문
  3. C가중치의 각 요소를 메모리에서 읽어도 한 번의 곱셈-덧셈에만 사용하므로 연산 강도가 매우 낮기 때문
정답과 해설 보기

정답: C. 가중치의 각 요소를 메모리에서 읽어도 한 번의 곱셈-덧셈에만 사용하므로 연산 강도가 매우 낮기 때문

행렬과 벡터의 곱에서는 가중치 행렬의 각 요소를 한 번 읽어 입력의 한 요소와 한 번 곱해 더할 뿐입니다. FP16이면 2바이트당 2번의 연산이므로 연산 강도는 약 1입니다. 가중치를 읽는 데 시간이 걸리고 연산기는 대부분 기다립니다. 같은 가중치를 여러 입력에 사용할 수 있도록 입력을 모으면(배치를 키우면) 연산 강도가 올라갑니다.

  • A. 요소 수는 율속의 이유가 아닙니다.
  • B. 계산은 가능하지만 메모리 대기가 길어집니다.
  • C. 정답입니다. 가중치를 재사용할 수 없습니다.
이 분야 연습하기 분야로 돌아가기

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

  1. 추론에서 배치 크기(한꺼번에 처리하는 입력의 수)를 키우면 전체 처리 효율이 올라가기 쉬운 이유는 무엇인가?
  2. 추론에서 배치 크기를 지나치게 키웠을 때의 단점으로 올바른 것은 무엇인가?
  3. 대규모 언어 모델의 추론은 입력 문장을 한꺼번에 처리하는 단계(프리필)와 토큰을 하나씩 출력으로 만드는 단계(디코드)로 나뉜다. 각각의 성능을 주로 결정하는 것의 조합으로 올바른 것은 무엇인가(배치가 작은 경우)?
  4. 대규모 언어 모델의 추론에서 사용되는 KV 캐시의 역할로 올바른 것은 무엇인가?
  5. 대규모 언어 모델의 추론에서 긴 문장이나 큰 배치를 다룰 때 문제가 되기 쉬운 것은 무엇인가?