피드로 돌아가기
Dev.toAI/ML
원문 읽기
Channels-last 포맷 전환으로 A100 추론 지연 시간 22% 단축
Channels-last memory format cut our conv backbone latency 22%
AI 요약
Context
Photoroom의 배경 제거 모델인 U-Net 기반 Encoder-Decoder 구조에서 cuDNN Convolution Kernel이 주요 병목 지점으로 식별됨. 기존 NCHW 메모리 레이아웃 사용 시 NVIDIA Tensor Core 활용 효율이 저하되는 한계 발생.
Technical Solution
- 메모리 레이아웃을 NCHW에서 NHWC(Channels-last)로 변경하여 텐서 코어 최적화 달성
- 데이터 배치 시 채널 값을 메모리 상에 연속적으로 배치하여 Stride 패턴 최적화
- cuDNN 내 불필요한 Transpose Pass 제거를 통한 연산 오버헤드 최소화
- 모델 가중치와 입력 텐서 모두를 동시에 Channels-last로 변환하여 Fallback 방지
- Float16 정밀도 및 torch.autocast 조합을 통한 Tensor Core 가속 극대화
- 512채널 이상의 Deep Encoder Block에서 데이터 정렬 이득을 통한 성능 최적화
Impact
- A100 GPU 기준 이미지당 추론 지연 시간 31ms에서 24ms로 약 22% 감소
- V100 GPU 기준 약 14%의 성능 개선 확인
- 모델 정확도 손실 없이 코드 4줄 수정만으로 성능 최적화 달성
실천 포인트
1. Convolution 기반 모델을 Tensor Core GPU에서 구동 시 Channels-last 포맷 적용 검토
2. 모델 가중치와 입력 데이터의 메모리 포맷 일치 여부 확인
3. Float16/BFloat16 저정밀도 연산 환경에서 성능 이득 최대화 여부 검증
4. 채널 수가 적은 레이어보다 많은 레이어에서 더 큰 성능 향상이 나타남을 인지하고 프로파일링 수행