피드로 돌아가기
How we catch silent NPU fallback on Snapdragon in CI (and why your eval set won't)
Dev.toDev.to
AI/ML

NPU Fallback 탐지 자동화로 필드 장애 해결 및 디버깅 기간 단축

How we catch silent NPU fallback on Snapdragon in CI (and why your eval set won't)

ashish-frozo2026년 5월 15일10advanced

Context

Snapdragon NPU 대상의 YOLOv8n 모델 배포 시, 지원되지 않는 Op가 CPU로 Silent Fallback되어 p95 Latency가 3배 증가하는 현상 발생. 기존 Cloud CI 및 단순 Median Latency 측정 방식으로는 실행 경로(Execution Path)의 변경을 감지할 수 없는 한계 노출.

Technical Solution

  • 실물 Snapdragon 디바이스 기반의 CI 환경 구축을 통한 Emulator의 추상화 오차 제거
  • Median Latency와 Coefficient of Variation(CV)을 동시 검증하여 Fallback 발생 시 나타나는 Bimodal Distribution 식별
  • ORT profiling_level=detailed 설정을 통한 Per-node Routing Manifest 추출 및 분석
  • 전체 FLOPs 대비 NPU 실행 비율(NPU FLOPs $\ge$ 98%)을 명시적 Assertion으로 정의하여 Fallback 원천 차단
  • Qualcomm AI Hub와 GitHub Action을 연동한 자동화 파이프라인으로 Op 단위의 Fallback 지점 즉시 식별 구조 설계

1. `session_options.log_severity_level = 0` 및 `profiling_level = detailed` 설정으로 실행 로그 상세화

2. Latency 측정 시 Median 외에 CV(변동 계수)를 측정하여 15% 초과 시 Bimodal Distribution 의심

3. NPU/GPU 가속기 사용 시 단순 수행 시간 측정 대신 실제 가속기 할당 FLOPs 비율을 Assertion으로 추가

원문 읽기