Skip to content

Memory-bandwidth

  • Published on
    GPU 커널을 직접 수정한다는 것이 실제로 무엇을 뜻하는지, 스레드와 워프와 메모리 계층부터 짚습니다. 점유율이 왜 목표가 아니라 증상인지, 그리고 대부분의 커널이 연산이 아니라 메모리 대역폭에 묶여 있다는 사실을 루프라인 관점에서 설명합니다. 행렬 전치 커널 하나를 naive에서 코얼레싱, 셰어드 메모리 타일링, 뱅크 충돌 제거까지 네 단계로 고치면서 각 단계의 유효 대역폭을 직접 재는 하니스를 함께 제공합니다. 마지막으로 Nsight Compute에서 실제로 어떤 섹션을 열어 무엇을 판단하는지 정리합니다.