LiteRT mendukung Intel OpenVino melalui CompiledModel API untuk kompilasi AOT dan di perangkat.
Menyiapkan lingkungan pengembangan
Linux (x86_64):
- Ubuntu 22.04 atau 24.04 LTS
- Python 3.10+ — instal dari python.org
atau distro Anda (
sudo apt install python3 python3-venv) - Driver Intel NPU v1.32.1 — lihat Penyiapan NPU Linux
Windows (x86_64):
- Windows 10 atau 11
- Python 3.10+ — instal dari python.org
- Driver Intel NPU 32.0.100.4724+ — lihat Penyiapan NPU Windows
Untuk membangun dari sumber, Bazel 7.4.1+ menggunakan Bazelisk atau build Docker hermetik juga diperlukan.
SoC yang Didukung
| Platform | NPU | Namakode | OS |
|---|---|---|---|
| Intel Core Ultra Series 2 | NPU4000 | Lunar Lake (LNL) | Linux, Windows |
| Intel Core Ultra Series 3 | NPU5010 | Panther Lake (PTL) | Linux, Windows |
Mulai Cepat
1. Menginstal Driver NPU
Lihat Penyiapan NPU Linux atau Penyiapan NPU Windows. Lewati jika Anda hanya memerlukan AOT.
Driver NPU hanya diperlukan pada sistem yang menjalankan model pada hardware NPU. Sistem build AOT murni dapat melewatinya.
Catatan:
ai-edge-litert-sdk-intel-nightlymenyematkan roda malam OpenVINO yang cocok berdasarkan versi PEP 440 (misalnya,openvino==2026.2.0.dev20260506), sehingga pip memerlukan--extra-index-url https://storage.openvinotoolkit.org/simple/wheels/nightlyuntuk menemukannya. Di Linux, jika deteksi otomatis distro memilih arsip yang salah, tetapkanLITERT_OV_OS_ID=ubuntu22atauubuntu24sebelumpip install.
2. Membuat Lingkungan Virtual Python
Direkomendasikan untuk menjaga roda openvino malam terisolasi dari penginstalan OpenVINO di seluruh sistem.
python -m venv litert_env
# Linux / macOS
source litert_env/bin/activate
# Windows (PowerShell)
.\litert_env\Scripts\Activate.ps1
python -m pip install --upgrade pip
3. Menginstal Paket pip
pip install --pre \
--extra-index-url https://storage.openvinotoolkit.org/simple/wheels/nightly \
ai-edge-litert-nightly ai-edge-litert-sdk-intel-nightly
--extra-index-url memungkinkan pip menyelesaikan roda malam openvino yang disematkan dari indeks OpenVINO bersama dengan paket di PyPI.
4. Memverifikasi Penginstalan
python -c "
from ai_edge_litert.aot.vendors.intel_openvino import intel_openvino_backend
import ai_edge_litert_sdk_intel, openvino, os
print('Backend:', intel_openvino_backend.IntelOpenVinoBackend.id())
print('Dispatch:', intel_openvino_backend.get_dispatch_dir())
print('OpenVINO:', openvino.__version__)
print('SDK libs:', sorted(os.listdir(ai_edge_litert_sdk_intel.path_to_sdk_libs())))
print('Available devices:', openvino.Core().available_devices)
"
Yang perlu diperiksa dalam output:
SDK libsmencantumkanlibopenvino_intel_npu_compiler.so(Linux) atauopenvino_intel_npu_compiler.dll(Windows) — diperlukan untuk AOT.Available devicesmencakupNPU— mengonfirmasi bahwa driver NPU telah diinstal dan OpenVINO dapat berkomunikasi dengan perangkat.NPUtidak akan ada di sistem khusus AOT (tempat driver tidak diinstal) dan di sistem tanpa hardware Intel NPU.
5. Kompilasi AOT (Opsional)
- Mengompilasi
.tfliteuntuk target Intel NPU tertentu (PTL atau LNL) sehingga runtime akan melewati langkah plugin compiler. - Tidak memerlukan NPU fisik atau driver NPU — hanya
ai-edge-litert-nightlydanai-edge-litert-sdk-intel-nightly. - Kompilasi silang didukung: kompilasi di host Linux atau Windows mana pun, kirim
.tfliteyang dihasilkan ke target OS mana pun, dan jalankan di sana.
File output diberi nama <model>_IntelOpenVINO_<SoC>_apply_plugin.tflite.
from ai_edge_litert.aot import aot_compile
from ai_edge_litert.aot.vendors.intel_openvino import target as intel_target
# Compile for a single Intel NPU target (PTL or LNL).
aot_compile.aot_compile(
"model.tflite",
output_dir="out",
target=intel_target.Target(soc_model=intel_target.SocModel.PTL),
)
# Or omit target= to compile for every registered backend/target.
aot_compile.aot_compile("model.tflite", output_dir="out", keep_going=True)
6. Menjalankan Inferensi NPU
LiteRT mendukung dua jalur inferensi di Intel NPU:
- JIT — memuat
.tflitementah; plugin compiler mempartisi dan mengompilasi operasi yang didukung untuk NPU pada waktuCompiledModel.from_file(). Menambahkan beberapa latensi run pertama (bervariasi menurut model). - Dikompilasi AOT — memuat
<model>_IntelOpenVINO_<SoC>_apply_plugin.tfliteyang dihasilkan oleh langkah 4. Melewati langkah partisi dan kompilasi pada waktu pemuatan.
Cuplikan ini berfungsi untuk keduanya:
from ai_edge_litert.compiled_model import CompiledModel
from ai_edge_litert.hardware_accelerator import HardwareAccelerator
model = CompiledModel.from_file(
"model.tflite", # raw tflite (JIT) or ..._apply_plugin.tflite (AOT)
hardware_accel=HardwareAccelerator.NPU | HardwareAccelerator.CPU,
)
sig_key = list(model.get_signature_list().keys())[0]
sig_idx = model.get_signature_index(sig_key)
input_buffers = model.create_input_buffers(sig_idx)
output_buffers = model.create_output_buffers(sig_idx)
model.run_by_index(sig_idx, input_buffers, output_buffers)
print("Fully accelerated:", model.is_fully_accelerated())
Mengonfirmasi bahwa JIT benar-benar berjalan
Jika JIT berhasil, log akan berisi (ekstensi file adalah .so di Linux, .dll di Windows):
INFO: [compiler_plugin.cc:236] Loaded plugin at: .../LiteRtCompilerPlugin_IntelOpenvino.{so,dll}
INFO: [compiler_plugin.cc:690] Partitioned subgraph<0>, selected N ops, from a total of N ops
INFO: [compiled_model.cc:1006] JIT compilation changed model, reserializing...
Jika baris tersebut tidak ada, tetapi Fully accelerated: True masih dilaporkan, model dijalankan pada penggantian XNNPACK CPU, bukan pada NPU — lihat baris pemecahan masalah JIT.
7. Benchmark
# Dispatch library and the NPU compiler are auto-discovered from the wheel.
litert-benchmark --model=model.tflite --use_npu --num_runs=50
Flag umum:
| Bendera | Default | Deskripsi |
|---|---|---|
--model PATH
|
— | Jalur ke model .tflite (wajib). |
--signature KEY |
pertama | Kunci tanda tangan untuk dijalankan. |
--use_cpu / --no_cpu
|
aktif | Mengalihkan akselerator CPU / penggantian CPU. |
--use_gpu |
nonaktif | Mengaktifkan akselerator GPU. |
--use_npu |
nonaktif | Mengaktifkan akselerator Intel NPU. |
--require_full_delegation
|
nonaktif | Gagal jika model tidak sepenuhnya di-offload ke akselerator yang dipilih. |
--num_runs N
|
50 | Jumlah iterasi inferensi berjangka waktu. |
--warmup_runs N
|
5 | Iterasi pemanasan tanpa waktu sebelum pengukuran. |
--num_threads N |
1 | Jumlah thread CPU. |
--result_json PATH
|
— | Menulis ringkasan JSON (statistik latensi, throughput, daftar akselerator). |
--verbose |
nonaktif | Logging runtime tambahan. |
Flag lanjutan / penggantian — hanya diperlukan untuk mengarah ke build kustom: --dispatch_library_path, --compiler_plugin_path, --runtime_path.
Roda vendor campuran: menyematkan JIT ke Intel OV
Catatan: Saat
Environment.create()dipanggil tanpa jalur eksplisit, vendor akan otomatis ditemukan di bagianai_edge_litert/vendors/dalam urutan abjad dan mendaftarkan vendor pertama yang ditemukan. Dalam penginstalan vendor campuran, ini mungkin bukan Intel OV — teruskan direktori Intel OV secara eksplisit untuk memaksa pilihan yang tepat.
- Roda pip mengirimkan plugin compiler untuk setiap vendor terdaftar (
intel_openvino/,google_tensor/,mediatek/,qualcomm/,samsung/). - Untuk memaksa jalur Intel OV (direkomendasikan saat beberapa SDK vendor diinstal), teruskan direktori Intel OV secara manual:
from ai_edge_litert.environment import Environment
from ai_edge_litert.compiled_model import CompiledModel
from ai_edge_litert.hardware_accelerator import HardwareAccelerator
from ai_edge_litert.aot.vendors.intel_openvino import intel_openvino_backend as ov
env = Environment.create(
compiler_plugin_path=ov.get_compiler_plugin_dir(), # JIT compiler
dispatch_library_path=ov.get_dispatch_dir(), # runtime
)
model = CompiledModel.from_file(
"model.tflite",
hardware_accel=HardwareAccelerator.NPU | HardwareAccelerator.CPU,
environment=env,
)
Runtime memuat setiap library bersama yang ditemukannya di direktori yang diberikan, sehingga mengarah ke vendors/intel_openvino/compiler/ hanya memuat plugin Intel; plugin Google Tensor / MediaTek / Qualcomm / Samsung di direktori saudara tidak pernah disentuh.
Untuk CLI, flag yang setara adalah:
DISPATCH_DIR=$(python3 -c 'from ai_edge_litert.aot.vendors.intel_openvino import intel_openvino_backend as ov; print(ov.get_dispatch_dir())')
COMPILER_DIR=$(python3 -c 'from ai_edge_litert.aot.vendors.intel_openvino import intel_openvino_backend as ov; print(ov.get_compiler_plugin_dir())')
litert-benchmark --model=model.tflite --use_npu \
--compiler_plugin_path=$COMPILER_DIR \
--dispatch_library_path=$DISPATCH_DIR
Memverifikasi Eksekusi NPU
Untuk mengonfirmasi bahwa model benar-benar berjalan di NPU, periksa kedua sinyal:
- Log berisi
Loading shared library: .../LiteRtDispatch_IntelOpenvino.{so,dll}— library pengiriman Intel dimuat (.sodi Linux,.dlldi Windows). model.is_fully_accelerated()menampilkanTrue— setiap operasi di-offload ke akselerator yang dipilih.
is_fully_accelerated() saja tidak cukup: jika library pengiriman tidak pernah dimuat, operasi akan sepenuhnya di-offload ke XNNPACK/CPU, bukan NPU.
Penyiapan NPU Linux
Catatan: Lewati bagian ini jika Anda hanya memerlukan AOT — NPU fisik tidak diperlukan.
Info: Gunakan driver NPU v1.32.1 (dipasangkan dengan OpenVINO 2026.1). Driver lama gagal dengan
Level0 pfnCreate2 result: ZE_RESULT_ERROR_UNSUPPORTED_FEATURE.
# 1. NPU driver (Ubuntu 24.04 use -ubuntu2204 tarball for 22.04).
sudo dpkg --purge --force-remove-reinstreq \
intel-driver-compiler-npu intel-fw-npu intel-level-zero-npu intel-level-zero-npu-dbgsym || true
wget https://github.com/intel/linux-npu-driver/releases/download/v1.32.1/linux-npu-driver-v1.32.1.20260422-24767473183-ubuntu2404.tar.gz
tar -xf linux-npu-driver-v1.32.1.*.tar.gz
sudo apt update && sudo apt install -y libtbb12
sudo dpkg -i intel-fw-npu_*.deb intel-level-zero-npu_*.deb intel-driver-compiler-npu_*.deb
# 2. Level Zero loader v1.27.0.
wget https://snapshot.ppa.launchpadcontent.net/kobuk-team/intel-graphics/ubuntu/20260324T100000Z/pool/main/l/level-zero-loader/libze1_1.27.0-1~24.04~ppa2_amd64.deb
sudo dpkg -i libze1_*.deb
# 3. Permissions + verify.
sudo gpasswd -a ${USER} render && newgrp render
ls /dev/accel/accel0 # must exist after reboot
Kemudian, jalankan cuplikan penginstalan + verifikasi dari Mulai Cepat.
Penyiapan NPU Windows
Catatan: Lewati bagian ini jika Anda hanya memerlukan AOT — NPU fisik tidak diperlukan.
- Instal driver Intel NPU (32.0.100.4724+) dari Pusat Download Intel.
- Pastikan Pengelola Perangkat mencantumkan perangkat NPU di bagian Prosesor neural (ditampilkan sebagai
Intel(R) AI BoostatauIntel(R) NPU, bergantung pada driver). - Jalankan cuplikan penginstalan + verifikasi dari Mulai Cepat, dengan mengganti
pipdenganpython -m pip.
Info:
import ai_edge_litertotomatis mendaftarkan direktori DLL menggunakanos.add_dll_directory(), sehingga skrip Python tidak memerlukan penyiapanPATH. Untuk konsumen non-Python, jalankansetupvars.batatau tambahkan<openvino>/libskePATH.
Membangun dari Sumber
Di belakang proxy? Ekspor
http_proxy/https_proxy/no_proxysebelum menjalankan skrip build — skrip ini akan meneruskan skrip ke Docker dan container.
Linux (Docker, hermetik):
cd LiteRT/docker_build && ./build_wheel_with_docker.sh
Windows (PowerShell, Bazel di PATH):
.\ci\build_pip_package_with_bazel_windows.ps1
Output berada di dist/:
ai_edge_litert-*.whl— roda runtime.ai_edge_litert_sdk_{intel,qualcomm,mediatek,samsung}-*.tar.gz— sdist vendor.- Sdist Intel berukuran ~5 KB; compiler NPU
.so/.dlldiambil pada waktupip installtime, sehingga sdist yang sama berfungsi di Linux dan Windows.
Pengujian Unit
bazel test \
//litert/python/aot/vendors/intel_openvino:intel_openvino_backend_test \
//litert/c/options:litert_intel_openvino_options_test \
//litert/cc/options:litert_intel_openvino_options_test \
//litert/tools/flags/vendors:intel_openvino_flags_test
Pemecahan masalah
| Masalah | Perbaiki |
|---|---|
AOT gagal: Device with "NPU" name is not registered |
Compiler NPU tidak diambil. Periksa ai_edge_litert_sdk_intel.path_to_sdk_libs() mencantumkan libopenvino_intel_npu_compiler.so / .dll. Jika kosong, instal ulang dengan akses jaringan, atau tetapkan LITERT_OV_OS_ID=ubuntu22/ubuntu24. |
JIT berjalan di CPU, bukan NPU (tidak ada log Partitioned subgraph, tidak ada log Loaded plugin, Fully accelerated: True masih dicetak) |
Plugin compiler tidak ditemukan. Pastikan ov.get_compiler_plugin_dir() menampilkan jalur di bagian ai_edge_litert/vendors/intel_openvino/compiler/. Jika beberapa SDK vendor diinstal, teruskan compiler_plugin_path=ov.get_compiler_plugin_dir() secara eksplisit ke Environment.create() (atau --compiler_plugin_path=... ke litert-benchmark). |
JIT gagal: Cannot load library .../openvino/libs/libopenvino_intel_npu_compiler.so (Linux) / openvino_intel_npu_compiler.dll (Windows) |
Sdist SDK menyalin compiler NPU ke openvino/libs/ pada import ai_edge_litert_sdk_intel pertama. Jika salinan dilewati (FS hanya baca, openvino tidak ada), instal ulang ai-edge-litert-sdk-intel setelah openvino diinstal, lalu import ai_edge_litert dalam proses baru. |
Level0 pfnCreate2 result: ZE_RESULT_ERROR_UNSUPPORTED_FEATURE |
Upgrade driver NPU ke v1.32.1 (Linux). |
/dev/accel/accel0 tidak ditemukan |
sudo dmesg | grep -i vpu untuk men-debug driver; mulai ulang setelah penginstalan. |
| Izin ditolak di NPU | sudo gpasswd -a ${USER} render && newgrp render. |
| Windows: NPU tidak ada di Pengelola Perangkat | Instal driver NPU 32.0.100.4724+ dari Pusat Download Intel. |
Windows: Failed to initialize Dispatch API / DLL tidak ada |
Pastikan import ai_edge_litert berjalan terlebih dahulu (otomatis mendaftarkan direktori DLL); untuk pemanggil non-Python, jalankan setupvars.bat atau tambahkan <openvino>/libs ke PATH. |
Build Windows: LNK2001 fixed_address_empty_string, C2491 dllimport, Python 3.12+ fails |
Batasan versi Python / ABI Protobuf — lihat ci/build_pip_package_with_bazel_windows.ps1; build Windows memerlukan Python 3.11. |
Batasan
Hanya perangkat NPU yang didukung melalui jalur pengiriman OpenVINO. Untuk inferensi CPU, gunakan HardwareAccelerator.CPU saja (XNNPACK).
Langkah berikutnya
- Mulai dengan panduan NPU terpadu: Akselerasi NPU dengan LiteRT
- Ikuti langkah-langkah konversi dan deployment di sana, dengan memilih Qualcomm jika berlaku.
- Untuk LLM, lihat Menjalankan LLM di NPU menggunakan LiteRT-LM.