GPU 파이프라인 단계별 병목을 프로파일러로 찾고 최적화 방향을 결정하는 결
컴퓨터 아키텍처 수업에서 GPU 성능 분석 과제를 수행했습니다. 처음에는 전체 실행 시간만 봤는데 병렬화가 충분한데도 느린 구간이 있어 원인이 잘 파악되지 않았습니다. 프로파일러로 단계별 점유율을 측정했더니 메모리 대역폭이 병목이었습니다. 컴퓨트 유닛은 50% 이하로 활용되고 있었는데, 메모리 접근이 끝날 때까지 대기하는 구조였습니다. 접근 패턴을 분석해 coalescoed 접근으로 바꿨더니 메모리 트랜잭션 수가 줄어 대역폭 사용 효율이 올라갔습니다.
최적화 후 처리 속도가 2.3배 향상됐습니다. GPU 성능 최적화는 하드웨어 제약 이해와 프로파일러 활용이 핵심이라는 걸 그때 확인했습니다. 지금도 GPU 분석은 프로파일러부터 시작합니다.