병목 파악 결 → 프로파일링 결 → 튜닝 결 → 결과 결
GPU 프로파일링·튜닝으로 성능을 개선한 경험은 학과 딥러닝 프로젝트에서 학습 속도가 예상보다 느려 병목 자리를 찾아 개선하면서 왔습니다. 병목 파악 자리에서는 처음에는 모델 구조를 바꿔야 하는 줄 알았는데, 프로파일링을 해보니 GPU 사용률이 낮고 데이터 로딩이 병목이었습니다. 프로파일링 자리에서는 PyTorch의 torch.profiler를 사용해 연산별 시간과 GPU 점유율을 확인했습니다. 어느 자리에서 시간이 가장 많이 쓰이는지를 눈으로 보고 나서 최적화 방향이 명확해졌습니다. 튜닝 자리에서는 DataLoader의 num_workers를 늘려 데이터 전처리를 병렬화하고, 메모리 핀닝을 활성화했습니다. GPU가 데이터를 기다리는 자리가 크게 줄었습니다. 결과 자리에서는 학습 시간이 약 30% 단축됐고, GPU 사용률이 눈에 띄게 올라갔습니다.