LiteRT ile Intel NPU (OpenVino)

LiteRT, hem AOT hem de cihaz üzerinde derleme için CompiledModel API'si aracılığıyla Intel OpenVino'yu destekler.

Geliştirme ortamını kurma

Linux (x86_64):

  • Ubuntu 22.04 veya 24.04 LTS
  • Python 3.10 veya daha yeni bir sürüm — python.org adresinden veya dağıtımınızdan (sudo apt install python3 python3-venv) yükleyin.
  • Intel NPU sürücüsü v1.32.1Linux NPU Kurulumu'na bakın.

Windows (x86_64):

  • Windows 10 veya 11
  • Python 3.10 veya sonraki bir sürüm — python.org adresinden yükleyin.
  • Intel NPU sürücüsü 32.0.100.4724+Windows NPU Kurulumu bölümüne bakın.

Kaynaktan derleme için Bazelisk kullanılan Bazel 7.4.1+ veya hermetik Docker derlemesi de gereklidir.

Desteklenen çip üzerinde sistemler

Platform NPU Kod adı OS
Intel Core Ultra Serisi 2 NPU4000 Lunar Lake (LNL) Linux, Windows
Intel Core Ultra Serisi 3 NPU5010 Panther Lake (PTL) Linux, Windows

Hızlı Başlangıç

1. NPU sürücülerini yükleme

Linux NPU Kurulumu veya Windows NPU Kurulumu başlıklı makaleyi inceleyin. Yalnızca AOT'ye ihtiyacınız varsa bu adımı atlayın.

NPU sürücüsü yalnızca modeli NPU donanımında çalıştıran sistemlerde gereklidir. Tam AOT derleme sistemleri bu adımı atlayabilir.

Not: ai-edge-litert-sdk-intel-nightly, PEP 440 sürümüne göre (ör.openvino==2026.2.0.dev20260506) eşleşen OpenVINO gece sürümü tekerleğini sabitler. Bu nedenle, pip'in bunu bulması için --extra-index-url https://storage.openvinotoolkit.org/simple/wheels/nightly gerekir. Linux'ta dağıtım otomatik algılama özelliği yanlış arşivi seçerse pip install öncesinde LITERT_OV_OS_ID=ubuntu22 veya ubuntu24'ı ayarlayın.

2. Python sanal ortamı oluşturma

Gece derlemesi openvino tekerleğinin, sistem genelinde OpenVINO yüklemelerinden izole edilmesi önerilir.

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. pip paketini yükleme

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, pip'in OpenVINO'nun dizinindeki sabitlenmiş openvino nightly wheel'ı PyPI'deki paketlerle birlikte çözmesine olanak tanır.

4. Kurulumu doğrulama

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)
"

Çıkışta kontrol edilecekler:

  • SDK libs listeleri libopenvino_intel_npu_compiler.so (Linux) veya openvino_intel_npu_compiler.dll (Windows) — AOT için gereklidir.
  • Available devices, NPU içerir. Bu, NPU sürücüsünün yüklendiğini ve OpenVINO'nun cihazla iletişim kurabildiğini onaylar. NPU, yalnızca AOT sistemlerinde (sürücünün yüklü olmadığı) ve Intel NPU donanımı olmayan sistemlerde bulunmaz.

5. AOT derlemesi (isteğe bağlı)

  • Çalışma zamanının derleyici eklentisi adımını atlaması için belirli bir Intel NPU hedefi (PTL veya LNL) için .tflite önceden derler.
  • Fiziksel bir NPU veya NPU sürücüsü gerekmez. Yalnızca ai-edge-litert-nightly ve ai-edge-litert-sdk-intel-nightly yeterlidir.
  • Çapraz derleme desteklenir: Herhangi bir Linux veya Windows ana makinesinde derleme yapın, sonuçtaki .tflite dosyasını her iki işletim sisteminin hedefinde gönderin ve orada çalıştırın.

Çıkış dosyaları <model>_IntelOpenVINO_<SoC>_apply_plugin.tflite olarak adlandırılır.

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. NPU çıkarımı çalıştırma

LiteRT, Intel NPU'da iki çıkarım yolunu destekler:

  • JIT: Ham .tflite yükleyin. Derleyici eklentisi, CompiledModel.from_file() zamanında NPU için desteklenen işlemleri bölümlendirir ve derler. İlk çalıştırma gecikmesi ekler (modele göre değişir).
  • AOT ile derlenmiş: <model>_IntelOpenVINO_<SoC>_apply_plugin.tflite ile üretilen bir <model>_IntelOpenVINO_<SoC>_apply_plugin.tflite yükleyin. Yükleme sırasında bölümleme ve derleme adımını atlar.

Bu snippet her ikisi için de çalışır:

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())

JIT'nin gerçekten çalıştırıldığını onaylama

JIT başarılı olduğunda günlükte şunlar yer alır (Linux'ta dosya uzantısı .so, Windows'da .dll):

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...

Bu satırlar yoksa ancak Fully accelerated: True yine de bildiriliyorsa model, NPU'da değil XNNPACK CPU yedeklemesinde çalıştırılmıştır. JIT ile ilgili sorun giderme satırına bakın.

7. Karşılaştırma

# Dispatch library and the NPU compiler are auto-discovered from the wheel.
litert-benchmark --model=model.tflite --use_npu --num_runs=50

Sık kullanılan işaretler:

İşaret Varsayılan Açıklama
--model PATH .tflite modelinin yolu (zorunlu).
--signature KEY ilk Çalıştırılacak imza anahtarı.
--use_cpu/--no_cpu CANNOT TRANSLATE CPU hızlandırıcıyı / CPU yedeklemeyi açın veya kapatın.
--use_gpu kapalı GPU hızlandırıcısını etkinleştirin.
--use_npu kapalı Intel NPU hızlandırıcıyı etkinleştirin.
--require_full_delegation kapalı Model, seçilen hızlandırıcıya tamamen yüklenmemişse başarısız olur.
--num_runs N 50 Zamanlanmış çıkarım yineleme sayısı.
--warmup_runs N 5 Ölçümden önce süresiz ısınma tekrarları.
--num_threads N 1 CPU iş parçacığı sayısı.
--result_json PATH JSON özeti yaz (gecikme istatistikleri, işleme hızı, hızlandırıcı listesi).
--verbose kapalı Ek çalışma zamanı günlük kaydı.

Gelişmiş / geçersiz kılma işaretleri: Yalnızca özel derlemelere yönlendirmek için gereklidir: --dispatch_library_path, --compiler_plugin_path, --runtime_path.

Farklı tedarikçilere ait tekerlekler: JIT'yi Intel OV'ye sabitleme

Not: Environment.create(), açık yollar olmadan çağrıldığında ai_edge_litert/vendors/ altındaki sağlayıcıları alfabetik sırayla otomatik olarak keşfeder ve bulduğu ilk sağlayıcıyı kaydeder. Karma tedarikçi kurulumunda bu, Intel OV olmayabilir. Doğru seçimi zorlamak için Intel OV dizinlerini açıkça iletin.

  • pip wheel, kayıtlı her satıcı için derleyici eklentileri gönderir (intel_openvino/, google_tensor/, mediatek/, qualcomm/, samsung/).
  • Intel OV yolunu zorlamak için (birden fazla tedarikçi SDK'sı yüklendiğinde önerilir) Intel OV dizinlerini manuel olarak iletin:
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,
)

Çalışma zamanı, belirtilen dizinde bulduğu her paylaşılan kitaplığı yükler. Bu nedenle, vendors/intel_openvino/compiler/ dizinini işaret ettiğinizde yalnızca Intel eklentisi yüklenir. Kardeş dizinlerdeki Google Tensor / MediaTek / Qualcomm / Samsung eklentilerine hiçbir zaman dokunulmaz.

CLI için eşdeğer işaretler şunlardır:

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

NPU Yürütme İşlemini Doğrulama

Modelin gerçekten NPU'da çalıştığını onaylamak için her iki sinyali de kontrol edin:

  1. Günlük, Loading shared library: .../LiteRtDispatch_IntelOpenvino.{so,dll} öğesini içerir. Intel dağıtım kitaplığı yüklendi (Linux'ta .so, Windows'da .dll).
  2. model.is_fully_accelerated(), True döndürür. Her işlem, seçilen hızlandırıcıya aktarılmıştır.

is_fully_accelerated() tek başına yeterli değildir: Gönderme kitaplığı hiç yüklenmediyse işlemler NPU'ya değil, XNNPACK/CPU'ya tamamen aktarılır.


Linux NPU Kurulumu

Not: Yalnızca AOT'ye ihtiyacınız varsa bu bölümü atlayın. Fiziksel bir NPU gerekmez.

Bilgi: NPU sürücüsü v1.32.1 (OpenVINO 2026.1 ile eşleştirilmiş) kullanın. Eski sürücüler Level0 pfnCreate2 result: ZE_RESULT_ERROR_UNSUPPORTED_FEATURE ile başarısız olur.

# 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

Ardından Hızlı Başlangıç'taki yükleme + doğrulama snippet'ini çalıştırın.


Windows NPU Kurulumu

Not: Yalnızca AOT'ye ihtiyacınız varsa bu bölümü atlayın. Fiziksel bir NPU gerekmez.

  • Intel İndirme Merkezi'nden Intel NPU sürücüsünü (32.0.100.4724+) yükleyin.
  • Cihaz Yönetim Paneli'nin NPU cihazını Sinirsel işlemciler altında listelediğini doğrulayın (sürücüye bağlı olarak Intel(R) AI Boost veya Intel(R) NPU olarak gösterilir).
  • Hızlı Başlangıç'tan yükleme + doğrulama snippet'ini çalıştırın ve pip yerine python -m pip yazın.

Bilgi: import ai_edge_litert, os.add_dll_directory() kullanarak DLL dizinlerini otomatik olarak kaydeder. Bu nedenle, Python komut dosyaları için PATH kurulumu gerekmez. Python kullanmayanlar için setupvars.bat komutunu çalıştırın veya PATH komutunun başına <openvino>/libs ekleyin.


Kaynaktan derleme

Proxy kullanıyor musunuz? Derleme komut dosyalarını çalıştırmadan önce http_proxy / https_proxy / no_proxy öğelerini dışa aktarın. Bu öğeler Docker'a ve kapsayıcıya yönlendirilir.

Linux (Docker, hermetik):

cd LiteRT/docker_build && ./build_wheel_with_docker.sh

Windows (PATH'te PowerShell, Bazel):

.\ci\build_pip_package_with_bazel_windows.ps1

Çıktılar dist/ konumuna kaydedilir:

  • ai_edge_litert-*.whl — çalışma zamanı tekerleği.
  • ai_edge_litert_sdk_{intel,qualcomm,mediatek,samsung}-*.tar.gz — vendor sdists.
  • Intel sdist'i yaklaşık 5 KB'tır. NPU derleyicisi .so/.dll, pip install zamanında getirilir. Bu nedenle aynı sdist, Linux ve Windows'ta çalışır.

Birim Testleri

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

Sorun giderme

Sorun Düzelt
AOT başarısızlıkları: Device with "NPU" name is not registered NPU derleyicisi getirilmedi. ai_edge_litert_sdk_intel.path_to_sdk_libs() Listeleri libopenvino_intel_npu_compiler.so / .dll kontrol edin. Boşsa ağ erişimiyle yeniden yükleyin veya LITERT_OV_OS_ID=ubuntu22/ubuntu24 olarak ayarlayın.
JIT, NPU yerine CPU'da çalışıyor (Partitioned subgraph günlüğü yok, Loaded plugin günlüğü yok, Fully accelerated: True yine de yazdırılıyor) Derleyici eklentisi bulunamadı. Onayla ov.get_compiler_plugin_dir() ai_edge_litert/vendors/intel_openvino/compiler/ altında bir yol döndürür. Birden fazla tedarikçi SDK'sı yüklüyse compiler_plugin_path=ov.get_compiler_plugin_dir() değerini Environment.create()'ye (veya --compiler_plugin_path=... değerini litert-benchmark'ye) açıkça iletin.
JIT başarısız oluyor: Cannot load library .../openvino/libs/libopenvino_intel_npu_compiler.so (Linux) / openvino_intel_npu_compiler.dll (Windows) SDK sdist, ilk import ai_edge_litert_sdk_intel sırasında NPU derleyicisini openvino/libs/ konumuna kopyalar. Kopyalama işlemi atlandıysa (salt okunur FS, openvino eksik) openvino yüklendikten sonra ai-edge-litert-sdk-intel'ı, ardından yeni bir işlemde import ai_edge_litert'ı yeniden yükleyin.
Level0 pfnCreate2 result: ZE_RESULT_ERROR_UNSUPPORTED_FEATURE NPU sürücüsünü v1.32.1'e (Linux) yükseltin.
/dev/accel/accel0 bulunamadı Sürücüde hata ayıklamak için sudo dmesg | grep -i vpu; yüklemeden sonra yeniden başlatın.
NPU'da izin reddedildi sudo gpasswd -a ${USER} render && newgrp render.
Windows: NPU, Aygıt Yöneticisi'nde görünmüyor Intel İndirme Merkezi'nden NPU sürücüsü 32.0.100.4724+ sürümünü yükleyin.
Windows: Failed to initialize Dispatch API / eksik DLL'ler Önce import ai_edge_litert'nın çalıştığından (DLL dizinlerini otomatik olarak kaydeder) emin olun. Python kullanmayan arayanlar için setupvars.bat'ı çalıştırın veya PATH'a <openvino>/libs'ı ekleyin.
Windows derlemesi: LNK2001 fixed_address_empty_string, C2491 dllimport, Python 3.12+ fails Protobuf ABI / Python sürümü kısıtlaması: ci/build_pip_package_with_bazel_windows.ps1 bölümüne bakın. Windows derlemeleri için Python 3.11 gerekir.

Sınırlamalar

OpenVINO gönderme yolu üzerinden yalnızca NPU cihazı desteklenir. CPU çıkarımı için yalnızca HardwareAccelerator.CPU (XNNPACK) kullanın.

Sonraki adımlar

  1. Birleştirilmiş NPU kılavuzuyla başlayın: LiteRT ile NPU hızlandırma
  2. Buradaki dönüşüm ve dağıtım adımlarını uygulayın ve uygun olduğunda Qualcomm'u seçin.
  3. LLM'ler için LiteRT-LM kullanarak NPU'da LLM'leri yürütme başlıklı makaleyi inceleyin.