Puzzle 5: 브로드캐스트

개요

벡터 ab를 브로드캐스트(broadcast)로 더해 2D 행렬 output에 저장하는 커널을 구현해 보세요.

병렬 프로그래밍에서 브로드캐스트란 요소별 연산을 할 때 저차원 배열을 고차원 배열의 형상에 맞게 자동으로 확장하는 것을 말합니다. 실제로 메모리에 데이터를 복제하지 않고, 추가 차원에 걸쳐 값을 논리적으로 반복하는 방식입니다. 예를 들어, 2D 행렬의 각 행(또는 열)에 1D 벡터를 더할 때 벡터를 여러 번 복사하지 않아도 같은 요소가 자동으로 반복 적용됩니다.

참고: 스레드 수가 행렬의 위치 수보다 많습니다.

Broadcast 시각화 Broadcast 시각화

핵심 개념

  • 벡터를 행렬로 브로드캐스트하기
  • 2D 스레드 관리
  • 서로 다른 차원 간 연산
  • 메모리 레이아웃 패턴

구현 방식

🔰 원시 메모리 방식

수동 메모리 인덱싱으로 브로드캐스트를 처리하는 방법을 알아봅니다.

📐 LayoutTensor 버전

서로 다른 차원 간 연산을 LayoutTensor로 처리합니다.

💡 참고: 수동 인덱싱과 비교했을 때 LayoutTensor가 브로드캐스트를 얼마나 간단하게 만들어주는지 확인해 보세요.