PyTorch 모델 프로파일링 및 성능 개선기
PyTorch 모델 프로파일링 및 성능 개선기
2024.03.03Motivation 저희 팀은 전사적으로 사용하는 경량화 소프트웨어를 개발하고 있습니다. 여러 도메인의 팀 (자율주행, XR, LLM 등)이 사용하다 보니 여러 가지 문의가 항상 생기는데요. 최근에 Computer Vision 모델을 경량화 소프트웨어를 이용해서 전처리 후 다시 작업을 할 때 원본 모델에서보다 너무 느리다는 문의가 들어왔습니다. 보고된 Forward pass의 수행 시간이 거의 15배 이상 차이가 났었는데요. 그 과정에 대해서 어떻게 해결할 수 있었는지 예제를 통해서 소개하려고 합니다. Profiling result 처음에는 해당 모델이 GPU로 실행되지 않고, CPU로 실행되고 있다던가 흔히 저지르기 쉬운 실수에 대해서 먼저 체크를 했었는데요. 여러 가지로 검토했을 때 그런 단순한 실수..
PyTorch의 모듈 import는 어떻게 동작하는 걸까?
PyTorch의 모듈 import는 어떻게 동작하는 걸까?
2024.02.18nn.Linear(...)? 저를 포함하여 PyTorch를 사용하는 대부분은 아래처럼 필요한 torch 관련 패키지를 import 하여 사용하는 것에 아주 익숙할 것입니다 import torch from torch import nn m = nn.Linear(20, 30) input = torch.randn(128, 20) output = m(input) print(output.size()) nn 패키지에서는 Linear 뿐만 아니라 PyTorch에서 제공하는 다양한 Layer (e.g., Dropout, BatchNorm 등)과 Loss (e.g., KLD) 그리고 Container (ModuleList) 등을 사용할 수 있는데요. 어느 날 회사 업무 중 PyTorch 내부 코드 및 구조를 살펴볼 일이 ..