LiteRT와 함께 Qualcomm NPU에서 최고 성능 달성
Source: Google Developers Blog
Nov 24, 2025 – by Lu Wang, Senior Staff Software Engineer
현대 스마트폰은 CPU, GPU, NPU로 구성된 정교한 SoC(시스템 온 칩)를 탑재하고 있어, 서버 전용 대비 훨씬 더 인터랙티브하고 실시간에 가까운 온‑디바이스 GenAI 경험을 제공할 수 있습니다. GPU는 AI 작업을 위한 가장 보편적인 가속기이며, 전체 Android 디바이스의 약 90 %에서 GPU 연산을 사용할 수 있습니다. 하지만 GPU에만 의존하면 특히 복잡하고 인터랙티브한 GenAI 경험을 구축할 때 성능 병목이 발생할 수 있습니다.
다음 상황을 생각해 보세요: 연산 집약적인 텍스트‑투‑이미지 생성 모델을 온‑디바이스에서 실행하면서 동시에 ML 기반 세그멘테이션으로 실시간 카메라 피드를 처리하는 경우. 가장 강력한 모바일 GPU조차도 이 복합 부하 아래에서는 프레임 드롭이 발생하고 사용자 경험이 깨지는 상황에 직면합니다.
전체 GPU 추론 시 발생하는 성능 병목(왼쪽)과 NPU/GPU 병렬 처리 시 부드러운 사용자 경험(오른쪽). 삼성 갤럭시 S25 Ultra(QC Snapdragon 8 Elite)에서 캡처.
여기서 NPU(Neural Processing Unit)의 역할이 중요합니다. NPU는 수십 TOPS(초당 테라 연산) 수준의 전용 AI 연산을 제공하는 고도로 특화된 프로세서로, 최신 모바일 GPU가 감당할 수 있는 수준을 훨씬 초과합니다. 무엇보다도 CPU와 GPU에 비해 TOP당 전력 효율이 크게 높아 배터리 기반 디바이스인 스마트폰에 필수적입니다. NPU는 이제 틈새 기능이 아니라 표준 구성 요소가 되었으며, 최근 Qualcomm SoC의 80 % 이상에 탑재되어 있습니다. NPU는 GPU와 CPU와 병렬로 동작해 무거운 AI 연산을 담당하고, GPU는 렌더링을, CPU는 메인 스레드 로직을 담당하도록 합니다. 이러한 현대적 아키텍처는 최신 AI 애플리케이션이 요구하는 부드럽고 반응성이 뛰어난 고성능을 가능하게 합니다.

LiteRT Qualcomm AI Engine Direct Accelerator 소개
이 NPU 성능을 Google의 고성능 온‑디바이스 ML 프레임워크인 LiteRT에 도입하기 위해, Qualcomm과 긴밀히 협업하여 LiteRT Qualcomm AI Engine Direct (QNN) Accelerator를 발표하게 되어 기쁩니다. 이는 기존 TFLite QNN delegate를 대체합니다.
개발자를 위한 주요 장점
-
통합되고 간소화된 모바일 배포 워크플로
- 저수준 벤더‑특정 SDK와 직접 상호작용할 필요 없이, LiteRT가 SoC 컴파일러와 런타임에 통합되어 간편한 API를 제공합니다.
- 개별 SoC 버전을 타깃팅할 필요가 없습니다. LiteRT가 SoC 간 파편화를 추상화해 하나의 워크플로로 여러 디바이스에 확장할 수 있습니다.
이제 AOT(선행 컴파일)든 온‑디바이스 컴파일이든, 지원되는 모든 디바이스에 모델을 원활히 배포할 수 있습니다. 이는 Qualcomm AI Hub 등에서 제공되는 사전 학습
.tflite모델을 통합하는 과정을 그 어느 때보다 쉽게 만들어 줍니다. -
최첨단 온‑디바이스 성능
- 광범위한 LiteRT 연산을 지원해 NPU 활용도를 극대화하고 전체 모델 위임을 가능하게 합니다.
- 정교한 LLM 및 GenAI 모델을 위한 특수 커널과 최적화를 포함해 Gemma, FastVLM 등 모델에 대해 SOTA 성능을 달성합니다.
뛰어난 성능, 실제 결과
우리는 72개의 대표 ML 모델(비전, 오디오, NLP)에서 새로운 LiteRT QNN 가속기를 벤치마크했습니다. 주요 결과는 다음과 같습니다.
- CPU 대비 최대 100배, GPU 대비 10배 속도 향상.
- 90개의 LiteRT 연산을 지원해 72개 모델 중 64개를 NPU에 완전 위임.
- Qualcomm Snapdragon 8 Elite Gen 5에서 56개 이상의 모델이 NPU에서 5 ms 미만으로 실행되었으며, CPU에서는 13개 모델만이 해당 속도를 달성했습니다.
대표 벤치마크

그림: Snapdragon 8 Elite Gen 5(샤오미 17 Pro Max 구동)에서 측정한 LiteRT 추론 지연 시간. 값은 CPU 기준(100 %)에 대해 정규화되었습니다. GPU는 지연을 ~5–70 %로, NPU는 ~1–20 %로 감소시킵니다.
LLM 추론을 위한 NPU 전체 활용
LiteRT QNN Accelerator는 정교한 LLM에 대해 최첨단 성능을 제공합니다. 우리는 FastVLM‑0.5B 연구 모델(최신 비전 모델)을 AOT 컴파일과 온‑디바이스 NPU 추론 모두에 대해 LiteRT로 벤치마크했습니다.

- 모델은 int8 가중치와 int16 활성화로 양자화되어 NPU의 고속 int16 커널을 활용합니다.
- LiteRT QNN Accelerator에 트랜스포머 어텐션 레이어용 특수 NPU 커널을 추가했습니다.
Snapdragon 8 Elite Gen 5 NPU에서의 결과:
- 첫 토큰까지 시간(TTFT): 0.12 초(1024×1024 이미지 기준).
- 프리필 시 11 000 토큰/초 이상, 디코드 시 100 토큰/초 이상.
이 수치는 실시간 인터랙티브 경험을 가능하게 하며, 주변 세계를 처리하고 설명하는 라이브 씬‑언더스탠딩 데모에서 입증되었습니다.
(비디오 자리표시자 – 원본 비디오는 표시되지 않음)
3단계 시작 가이드
1단계 (선택): 대상 SoC용 AOT 컴파일
from ai_edge_litert.aot import aot_compile as aot_lib
from ai_edge_litert.aot.vendors.qualcomm import target as qnn_target
# 모든 사용 가능한 SoC에 대해 컴파일
compiled_models = aot_lib.aot_compile("model.tflite")
# 특정 Qualcomm SoC(예: Snapdragon 8 Elite Gen5)만 컴파일
sm8850_target = qnn_target.Target(qnn_target.SocModel.SM8850)
compiled_models = aot_lib.aot_compile(
"model.tflite",
target=[sm8850_target]
)
컴파일된 모델을 Google Play AI Pack으로 내보냅니다:
from ai_edge_litert.aot.ai_pack import export_lib as ai_pack_export
ai_pack_export.export(
compiled_models,
ai_pack_dir="path/to/pack",
ai_pack_name="my_ai_pack",
litert_model_name="my_model"
)
전체 예제는 LiteRT AOT 컴파일 노트북을 참고하세요.
2단계: Google Play를 통한 온‑디바이스 AI 배포
모델(AI Pack)을 Android 프로젝트에 추가합니다.
온‑디바이스 컴파일 – 원본 .tflite 파일을 assets/에 배치.
AOT 컴파일 – AI Pack을 프로젝트 루트에 복사하고 Gradle에 참조:
// settings.gradle.kts
include(":ai_pack:my_model")
// app/build.gradle.kts
android {
assetPacks.add(":ai_pack:my_model")
}
QNN 라이브러리를 가져옵니다:
./litert_npu_runtime_libraries/fetch_qualcomm_library.sh
런타임 라이브러리를 동적 피처 모듈로 추가:
// settings.gradle.kts
include(":litert_npu_runtime_libraries:runtime_strings")
include(":litert_npu_runtime_libraries:qualcomm_runtime_v79")
// app/build.gradle.kts
android {
dynamicFeatures.add(":litert_npu_runtime_libraries:qualcomm_runtime_v79")
}
dependencies {
implementation(project(":litert_npu_runtime_libraries:runtime_strings"))
}
전체 가이드는 Play for On‑device AI 튜토리얼을 참고하세요.
3단계: LiteRT Runtime API로 NPU에서 추론
// 모델 로드 및 런타임 초기화(NPU 사용 불가 시 GPU 폴백)
val model = CompiledModel.create(
context.assets,
"model/mymodel.tflite",
CompiledModel.Options(Accelerator.NPU, Accelerator.GPU)
)
// 버퍼 사전 할당
val inputBuffers = model.createInputBuffers()
val outputBuffers = model.createOutputBuffers()
// 입력 채우기
inputBuffers[0].writeFloat(...)
// 추론 실행
model.run(inputBuffers, outputBuffers)
// 출력 읽기
val result = outputBuffers[0].readFloat()
전체 예제는 이미지 세그멘테이션 샘플 앱을 확인하세요.
앞으로의 로드맵
LiteRT Qualcomm AI Engine Direct (QNN) Accelerator는 하드웨어 잠재력과 실제 애플리케이션 성능 사이의 격차를 메워줍니다. 여러분이 이 힘을 활용해 어떤 제품을 만들지 기대됩니다.
LiteRT DevSite와 LiteRT GitHub 저장소를 탐색해 보세요. 즐거운 개발 되세요!
감사 인사
Google ODML 팀과 Qualcomm 팀의 큰 기여에 특별히 감사드립니다:
Google ODML 팀: Alice Zheng, Advait Jain, Andrew Zhang, Arian Arfaian, Chintan Parikh, Chunlei Niu, Cormac Brick, Gerardo Carranza, Gregory Karpiak, Jingjiang Li, Jing Jin, Julius Kammerl, Lu Wang, Luke Boyer, Marissa Ikonomidis, Maria Lyubimtseva, Matt Kreileder, Matthias Grundmann, Na Li, Ping Yu, Quentin Khan, Rishika Sinha, Sachin Kotwani, Sebastian Schmidt, Steven Toribio, Teng‑Hui Zhu, Terry (Woncheol) Heoi, Vitalii Dziuba, Weiyi Wang, Yu‑Hui Chen, Zichuan We
Qualcomm LiteRT 팀: Alen Huang, Bastiaan Aarts, Brett Taylor, Chun‑Hsueh Lee (Jack), Chun‑Po Chang (Jerry), Chun‑Ting Lin (Graham), Felix Baum, Jiun‑Kai Yang (Kelvin), Krishna Sridhar, Ming‑Che Lin (Vincent), William Lin