LiteRT mbështet Intel OpenVino përmes CompiledModel API si për kompilimin AOT ashtu edhe për atë në pajisje.
Konfiguroni mjedisin e zhvillimit
Linux (x86_64):
- Ubuntu 22.04 ose 24.04 LTS
- Python 3.10+ — instalojeni nga python.org ose nga shpërndarja juaj (
sudo apt install python3 python3-venv) - Drajveri Intel NPU v1.32.1 — shihni Konfigurimi i NPU Linux
Windows (x86_64):
- Windows 10 ose 11
- Python 3.10+ — instalojeni nga python.org
- Drajveri Intel NPU 32.0.100.4724+ — shihni Konfigurimi i NPU-së së Windows
Për ndërtimin nga burimi, kërkohet gjithashtu Bazel 7.4.1+ duke përdorur Bazelisk ose ndërtimin hermetik Docker.
SoC-të e mbështetura
| Platforma | NPU | Emri i koduar | Sistemi operativ |
|---|---|---|---|
| Intel Core Ultra Series 2 | NPU4000 | Liqeni Hënor (LNL) | Linux, Windows |
| Intel Core Ultra Series 3 | NPU5010 | Liqeni Panther (PTL) | Linux, Windows |
Fillimi i shpejtë
1. Instaloni Drajverët e NPU-së
Shihni Konfigurimi i NPU-së së Linux-it ose Konfigurimi i NPU-së së Windows-it . Kapërcejeni nëse ju nevojitet vetëm AOT.
Drajveri NPU nevojitet vetëm në sistemet që e ekzekutojnë modelin në harduerin NPU. Sistemet e ndërtuara vetëm me AOT mund ta anashkalojnë atë.
Shënim:
ai-edge-litert-sdk-intel-nightlye fikson rrotën përkatëse të OpenVINO nightly sipas versionit PEP 440 (p.sh.openvino==2026.2.0.dev20260506), kështu që pip-it i duhet--extra-index-url https://storage.openvinotoolkit.org/simple/wheels/nightlypër ta gjetur atë. Në Linux, nëse zbulimi automatik i shpërndarjes zgjedh arkivin e gabuar, vendosniLITERT_OV_OS_ID=ubuntu22oseubuntu24parapip install.
2. Krijoni një mjedis virtual në Python
Rekomandohet që rrota openvino e natës të mbahet e izoluar nga çdo instalim i OpenVINO në të gjithë sistemin.
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. Instaloni paketën 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 lejon që pip të zgjidhë rrotën e fiksuar openvino nightly nga indeksi i OpenVINO së bashku me paketat në PyPI.
4. Verifikoni instalimin
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)
"
Çfarë duhet të kontrolloni në rezultat:
-
SDK libslistonlibopenvino_intel_npu_compiler.so(Linux) oseopenvino_intel_npu_compiler.dll(Windows) — e nevojshme për AOT. -
Available devicespërfshijnëNPU— konfirmon që drajveri NPU është instaluar dhe OpenVINO mund të komunikojë me pajisjen.NPUdo të mungojë në sistemet vetëm me AOT (ku drajveri nuk është i instaluar) dhe në sistemet pa harduerin Intel NPU.
5. Kompilimi i AOT (Opsional)
- Kompilon paraprakisht një
.tflitepër një objektiv specifik të NPU-së Intel (PTL ose LNL) në mënyrë që koha e ekzekutimit të anashkalojë hapin e plugin-it të kompajlerit. - Nuk ka nevojë për një NPU fizike ose për drajverin e NPU-së — vetëm
ai-edge-litert-nightlydheai-edge-litert-sdk-intel-nightly. - Mbështetet kompilimi i kryqëzuar: kompilojeni në çdo host Linux ose Windows, dërgoni skedarin
.tfliteqë rezulton në një objektiv të njërit prej sistemeve operative dhe ekzekutojeni atje.
Skedarët e daljes emërtohen <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. Ekzekutoni NPU Inference
LiteRT mbështet dy rrugë përfundimi në NPU-në Intel:
- JIT — ngarkon një
.tflitetë papërpunuar; shtojca e kompiluesit ndan dhe kompilon operacionet e mbështetura për NPU-në në kohënCompiledModel.from_file(). Shton pak vonesë gjatë ekzekutimit të parë (ndryshon sipas modelit). - AOT-kompiluar — ngarkoni një
<model>_IntelOpenVINO_<SoC>_apply_plugin.tflitetë prodhuar nga hapi 4. Anashkaloni hapin e ndarjes dhe kompilimit në kohën e ngarkimit.
Ky fragment funksionon për të dyja:
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())
Konfirmo që JIT u zhvillua në të vërtetë
Kur JIT ka sukses, regjistri përmban (pushimi i skedarit është .so në Linux, .dll në 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...
Nëse këto rreshta mungojnë, por raportohet ende Fully accelerated: True , modeli është ekzekutuar në rezervën e CPU-së XNNPACK, jo në NPU — shihni rreshtin e zgjidhjes së problemeve të JIT.
7. Pika referuese
# Dispatch library and the NPU compiler are auto-discovered from the wheel.
litert-benchmark --model=model.tflite --use_npu --num_runs=50
Flamuj të zakonshëm:
| Flamuri | Parazgjedhur | Përshkrimi |
|---|---|---|
--model PATH | — | Shtegu për në modelin .tflite (i detyrueshëm). |
--signature KEY | i pari | Çelësi i nënshkrimit për t'u ekzekutuar. |
--use_cpu / --no_cpu | në | Aktivizo/çaktivizo përshpejtuesin e CPU-së / opsionin rezervë të CPU-së. |
--use_gpu | fikur | Aktivizo përshpejtuesin e GPU-së. |
--use_npu | fikur | Aktivizo përshpejtuesin e NPU-së Intel. |
--require_full_delegation | fikur | Dështon nëse modeli nuk është shkarkuar plotësisht në përshpejtuesin e zgjedhur. |
--num_runs N | 50 | Numri i përsëritjeve të konkluzionit të kohëzuar. |
--warmup_runs N | 5 | Përsëritje të ngrohjes pa kohë para matjes. |
--num_threads N | 1 | Numri i fijeve të CPU-së. |
--result_json PATH | — | Shkruani një përmbledhje JSON (statistikat e vonesës, throughput-i, lista e përshpejtuesve). |
--verbose | fikur | Regjistrim shtesë në kohën e ekzekutimit. |
Flamuj të avancuar/mbivendosës — nevojiten vetëm për të treguar ndërtime të personalizuara: --dispatch_library_path , --compiler_plugin_path , --runtime_path .
Rrota me shitës të përzier: fiksimi i JIT në Intel OV
Shënim: Kur
Environment.create()thirret pa shtigje të qarta, ajo zbulon automatikisht shitësit nënai_edge_litert/vendors/në rend alfabetik dhe regjistron të parin që gjen. Në një instalim me shitës të përzier, ky mund të mos jetë Intel OV — kaloni direktoritë Intel OV në mënyrë të qartë për të detyruar zgjedhjen e duhur.
- Rrota pip ofron shtojca përpiluesish për çdo shitës të regjistruar (
intel_openvino/,google_tensor/,mediatek/,qualcomm/,samsung/). - Për të detyruar shtegun Intel OV (rekomandohet kur instalohen SDK të shumëfishta nga shitës), kaloni manualisht drejtoritë Intel OV:
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,
)
Koha e ekzekutimit ngarkon çdo bibliotekë të përbashkët që gjen në direktorinë e dhënë, kështu që drejtimi te vendors/intel_openvino/compiler/ ngarkon vetëm shtojcën Intel; shtojcat Google Tensor / MediaTek / Qualcomm / Samsung në direktoritë simotra nuk preken kurrë.
Për CLI, flamujt ekuivalentë janë:
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
Verifikoni Ekzekutimin e NPU-së
Për të konfirmuar që modeli ka funksionuar në të vërtetë në NPU, kontrolloni të dy sinjalet:
- Regjistri përmban
Loading shared library: .../LiteRtDispatch_IntelOpenvino.{so,dll}— biblioteka e shpërndarjes së Intel u ngarkua (.sonë Linux,.dllnë Windows). -
model.is_fully_accelerated()kthenTrue— çdo operacion u transferua te përshpejtuesi i zgjedhur.
is_fully_accelerated() vetëm nuk është e mjaftueshme: nëse biblioteka e dërgimit nuk është ngarkuar kurrë, operacionet janë shkarkuar plotësisht në XNNPACK/CPU, jo në NPU.
Konfigurimi i NPU-së në Linux
Shënim: Anashkalojeni këtë seksion nëse ju nevojitet vetëm AOT — nuk kërkohet një NPU fizike.
Informacion: Përdorni drajverin NPU v1.32.1 (të çiftëzuar me OpenVINO 2026.1). Drajverët më të vjetër dështojnë me
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
Pastaj ekzekutoni fragmentin e instalimit + verifikimit nga Quick Start .
Konfigurimi i NPU-së së Windows
Shënim: Anashkalojeni këtë seksion nëse ju nevojitet vetëm AOT — nuk kërkohet një NPU fizike.
- Instaloni drajverin Intel NPU ( 32.0.100.4724+ ) nga Qendra e Shkarkimeve të Intel .
- Verify Device Manager e rendit pajisjen NPU nën Procesorët Neural (të shfaqur si
Intel(R) AI BoostoseIntel(R) NPUnë varësi të drajverit). - Ekzekutoni fragmentin install + verify nga Quick Start , duke zëvendësuar
pipmepython -m pip.
Informacion:
import ai_edge_litertregjistron automatikisht drejtoritë DLL duke përdoruros.add_dll_directory(), kështu që skriptet Python nuk kanë nevojë për konfiguriminPATH. Për konsumatorët që nuk përdorin Python, ekzekutonisetupvars.batose vendosni<openvino>/libsparaPATH.
Ndërto nga Burimi
Pas një proxy-je? Eksportoni
http_proxy/https_proxy/no_proxypërpara se të ekzekutoni skriptet e ndërtimit — ato i përcillnin këto në Docker dhe në kontejner.
Linux (Docker, hermetik):
cd LiteRT/docker_build && ./build_wheel_with_docker.sh
Windows (PowerShell, Bazel në PATH):
.\ci\build_pip_package_with_bazel_windows.ps1
Daljet dalin në dist/ :
-
ai_edge_litert-*.whl— rrota e kohës së ekzekutimit. -
ai_edge_litert_sdk_{intel,qualcomm,mediatek,samsung}-*.tar.gz— shitës sdists. - Sdisti i Intel është ~5 KB; kompiluesi NPU
.so/.dllmerret në kohënpip install, kështu që i njëjti sdist funksionon në Linux dhe Windows.
Testet e Njësisë
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
Zgjidhja e problemeve
| Çështje | Rregullo |
|---|---|
AOT dështon: Device with "NPU" name is not registered | Kompiluesi NPU nuk u mor. Kontrolloni listat e ai_edge_litert_sdk_intel.path_to_sdk_libs() libopenvino_intel_npu_compiler.so / .dll . Nëse është bosh, riinstaloni me akses në rrjet ose vendosni LITERT_OV_OS_ID=ubuntu22 / ubuntu24 . |
JIT funksionon në CPU në vend të NPU (pa regjistër Partitioned subgraph , pa regjistër të Loaded plugin , Fully accelerated: True ende e shtypur) | Shtojca e kompiluesit nuk u zbulua. Konfirmo që ov.get_compiler_plugin_dir() kthen një shteg nën ai_edge_litert/vendors/intel_openvino/compiler/ . Nëse janë instaluar SDK të shumë shitësve, kalojeni compiler_plugin_path=ov.get_compiler_plugin_dir() në mënyrë të qartë te Environment.create() (ose --compiler_plugin_path=... te litert-benchmark ). |
JIT dështon: Cannot load library .../openvino/libs/libopenvino_intel_npu_compiler.so (Linux) / openvino_intel_npu_compiler.dll (Windows) | SDK sdist kopjon kompilatorin NPU në openvino/libs/ në import ai_edge_litert_sdk_intel . Nëse kopja është anashkaluar (FS vetëm për lexim, mungon openvino ), riinstaloni ai-edge-litert-sdk-intel pasi të instalohet openvino , pastaj import ai_edge_litert në një proces të ri. |
Level0 pfnCreate2 result: ZE_RESULT_ERROR_UNSUPPORTED_FEATURE | Përditësoni drajverin e NPU-së në v1.32.1 (Linux). |
/dev/accel/accel0 nuk u gjet | sudo dmesg | grep -i vpu për të debuguar drajverin; rinisni pas instalimit. |
| Leja e mohuar në NPU është përdorur. | sudo gpasswd -a ${USER} render && newgrp render . |
| Windows: NPU nuk është në Device Manager. | Instaloni drajverin NPU 32.0.100.4724+ nga Qendra e Shkarkimeve të Intel . |
Windows: Failed to initialize Dispatch API / mungojnë DLL-të | Sigurohuni që import ai_edge_litert të ekzekutohet i pari (regjistron automatikisht direktoritë DLL); për thirrësit jo-Python, ekzekutoni setupvars.bat ose vendosni <openvino>/libs para PATH . |
Ndërtimi i Windows: LNK2001 fixed_address_empty_string , C2491 dllimport , Python 3.12+ fails | Kufizimi i versionit Protobuf ABI / Python — shih ci/build_pip_package_with_bazel_windows.ps1 ; Ndërtimet e Windows kërkojnë Python 3.11. |
Kufizime
Vetëm pajisja NPU mbështetet përmes rrugës së dërgimit OpenVINO. Për përfundimin e CPU-së, përdorni vetëm HardwareAccelerator.CPU (XNNPACK).
Hapat e ardhshëm
- Filloni me udhëzuesin e unifikuar të NPU-së: Përshpejtimi i NPU-së me LiteRT
- Ndiqni hapat e konvertimit dhe vendosjes atje, duke zgjedhur Qualcomm aty ku është e aplikueshme.
- Për LLM-të, shihni Ekzekutimi i LLM-ve në NPU duke përdorur LiteRT-LM .