학부 GPU 아키텍처 수업, OpenGL 파이프라인 프로파일링 프로젝트
학부 GPU 아키텍처 수업에서 간단한 그래픽스 파이프라인을 직접 프로파일링하면서, 셰이더 단계보다 텍스처 메모리 접근이 병목이 되는 경우를 처음 경험했습니다. GPU는 많은 스레드가 동시에 실행되기 때문에 메모리 레이턴시를 숨기는 것이 성능의 핵심이라는 걸 배웠습니다. 캐시 히트율이 낮아지면 SM 활용률도 같이 떨어진다는 걸 프로파일링 도구로 확인했습니다. 드라이버 레벨에서 어떻게 명령어를 스케줄하는지가 실제 GPU 성능에 영향을 준다는 것도 배웠습니다. 아키텍처 이해는 셰이더를 쓰는 것과 왜 그 구조가 필요한지를 아는 것이 다른 수준이라는 걸 실습에서 알았습니다.
GPU 병목은 연산보다 메모리 접근 패턴에서 자주 발생한다는 걸 그때 배웠습니다. 이후 저는 성능 분석을 할 때 메모리 접근 패턴부터 확인하는 습관이 생겼습니다.