Triton Kaldi 서빙 시 메모리 누수 및 크래시 디버깅

Source

  • Field Notes/ReturnZero/Daily Notes/Day 218. 2022-02-03.md

Summary

Triton Inference Server를 통해 Kaldi ASR 모델을 서빙할 때, 대용량 테스트셋(4.2GB) 처리 중 서버가 크래시되거나 메모리(VIRT)가 비정상적으로 증가(최대 200GB)하는 문제를 조사함. 메모리 제한 시 std::out_of_range 예외 발생, 제한 해제 시 스왑 과다 사용 및 cuda-decoder 내부 assertion 실패(GetBestPredecessor)로 서버가 멈춤. 클라이언트 동시 채널 수 및 이터레이션 수 조정을 통한 재현 시도 및 로그 분석 중.

Key Points

  • Triton Kaldi 백엔드에서 대용량 오디오 데이터 처리 시 서버 불안정 발생
  • 메모리 제한 시 std::out_of_range 예외, 무제한 시 VIRT 200GB 이상 증가 및 스왑 과다 사용
  • Kaldi CUDA 디코더 내부에서 corr_id 중복 사용 경고 및 GetBestPredecessor assertion 실패 확인
  • 클라이언트 설정(동시 채널 수, 이터레이션 수) 변경으로 부하 조절 시도했으나 근본적 해결 안됨
  • lattice 정보 저장 과정에서의 메모리 할당 문제 가능성 가설 수립