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

행렬 곱의 결과에 바이어스를 더하고 ReLU를 통과시키는 처리를 3개의 별개 커널에서 하나로 융합했다. 주로 줄어드는 것은 무엇인가?

  1. A곱셈 횟수
  2. B메모리(HBM 등)에 대한 읽기/쓰기 양과 커널 기동 횟수
  3. C모델의 가중치 수
정답과 해설 보기

정답: B. 메모리(HBM 등)에 대한 읽기/쓰기 양과 커널 기동 횟수

별개의 커널에서는 행렬 곱의 결과를 메모리에 쓰고, 바이어스 커널이 읽어서 쓰고, ReLU 커널이 또 읽어서 씁니다. 융합하면 행렬 곱의 결과를 구한 그 자리에서 바이어스를 더하고 ReLU를 통과시켜 최종 결과만 쓰면 되므로, 중간의 큰 텐서의 읽기/쓰기가 2왕복 분 없어지고 기동의 수고도 줄어듭니다. 계산량 자체는 변하지 않습니다.

  • A. 행렬 곱의 곱셈 횟수는 같습니다.
  • B. 정답입니다. 계산량은 변하지 않습니다.
  • C. 가중치 수는 변하지 않습니다.
이 분야 연습하기 분야로 돌아가기

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

  1. XLA, TVM, PyTorch의 컴파일 기능과 같은 AI 컴파일러가 수행하는 주된 처리로 올바른 것은 무엇인가?
  2. AI 프레임워크나 컴파일러에서 사용되는 '계산 그래프'의 설명으로 올바른 것은 무엇인가?
  3. ONNX의 설명으로 올바른 것은 무엇인가?
  4. TensorRT나 ONNX Runtime 같은 추론 런타임이 학습용 프레임워크로 그대로 추론하는 것보다 빠를 수 있는 주된 이유는 무엇인가?
  5. ReLU나 레이어 정규화와 같은 요소별 연산이 AI 계산 중에서 연산 횟수에 비해 시간이 걸리기 쉬운 이유로 올바른 것은 무엇인가?