LiteRT hỗ trợ Intel OpenVino thông qua API CompiledModel cho cả AOT và quá trình biên dịch trên thiết bị.
Thiết lập môi trường phát triển
Linux (x86_64):
- Ubuntu 22.04 hoặc 24.04 LTS
- Python 3.10 trở lên – cài đặt từ python.org hoặc bản phân phối của bạn (
sudo apt install python3 python3-venv) - Trình điều khiển NPU của Intel v1.32.1 – xem phần Thiết lập NPU trên Linux
Windows (x86_64):
- Windows 10 hoặc 11
- Python 3.10 trở lên – cài đặt từ python.org
- Trình điều khiển NPU của Intel 32.0.100.4724+ – xem phần Thiết lập NPU trên Windows
Để tạo từ nguồn, bạn cũng cần Bazel 7.4.1 trở lên bằng Bazelisk hoặc bản dựng Docker khép kín.
SoC được hỗ trợ
| Nền tảng | NPU | Tên mã | Hệ điều hành |
|---|---|---|---|
| Dòng Intel Core Ultra 2 | NPU4000 | Lunar Lake (LNL) | Linux, Windows |
| Intel Core Ultra Series 3 | NPU5010 | Hồ Panther (PTL) | Linux, Windows |
Bắt đầu nhanh
1. Cài đặt trình điều khiển NPU
Xem phần Thiết lập NPU trên Linux hoặc Thiết lập NPU trên Windows. Bỏ qua nếu bạn chỉ cần AOT.
Bạn chỉ cần trình điều khiển NPU trên những hệ thống thực thi mô hình trên phần cứng NPU. Các hệ thống chỉ tạo AOT có thể bỏ qua bước này.
Lưu ý:
ai-edge-litert-sdk-intel-nightlyghim bánh xe OpenVINO phù hợp theo phiên bản PEP 440 (ví dụ:openvino==2026.2.0.dev20260506), vì vậy pip cần--extra-index-url https://storage.openvinotoolkit.org/simple/wheels/nightlyđể xác định vị trí của bánh xe này. Trên Linux, nếu tính năng tự động phát hiện bản phân phối chọn sai tệp lưu trữ, hãy đặtLITERT_OV_OS_ID=ubuntu22hoặcubuntu24trướcpip install.
2. Tạo môi trường ảo Python
Bạn nên giữ bánh xe openvino hằng đêm tách biệt với mọi bản cài đặt OpenVINO trên toàn hệ thống.
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. Cài đặt gói 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 cho phép pip phân giải bánh xe openvino được ghim hằng đêm từ chỉ mục của OpenVINO cùng với các gói trên PyPI.
4. Xác minh quá trình cài đặt
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)
"
Nội dung cần kiểm tra trong kết quả đầu ra:
SDK libslistslibopenvino_intel_npu_compiler.so(Linux) hoặcopenvino_intel_npu_compiler.dll(Windows) – bắt buộc đối với AOT.Available devicesbao gồmNPU– xác nhận rằng trình điều khiển NPU đã được cài đặt và OpenVINO có thể giao tiếp với thiết bị.NPUsẽ không có trên các hệ thống chỉ có AOT (nơi trình điều khiển không được cài đặt) và trên các hệ thống không có phần cứng NPU của Intel.
5. Biên dịch AOT (Không bắt buộc)
- Biên dịch trước một
.tflitecho một mục tiêu NPU cụ thể của Intel (PTL hoặc LNL) để thời gian chạy bỏ qua bước trình bổ trợ trình biên dịch. - Không cần NPU thực hoặc trình điều khiển NPU — chỉ cần
ai-edge-litert-nightlyvàai-edge-litert-sdk-intel-nightly. - Hỗ trợ biên dịch chéo: biên dịch trên mọi máy chủ lưu trữ Linux hoặc Windows, chuyển
.tflitekết quả đến một mục tiêu của một trong hai hệ điều hành và chạy kết quả đó ở đó.
Tệp đầu ra có tên là <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. Chạy suy luận NPU
LiteRT hỗ trợ hai đường dẫn suy luận trên NPU của Intel:
- JIT – tải một
.tflitethô; trình bổ trợ trình biên dịch phân vùng và biên dịch các hoạt động được hỗ trợ cho NPU tại thời điểmCompiledModel.from_file(). Tăng độ trễ khi chạy lần đầu (tuỳ theo mô hình). - Được biên dịch AOT – tải một
<model>_IntelOpenVINO_<SoC>_apply_plugin.tflitedo bước 4 tạo ra. Bỏ qua bước phân vùng và biên dịch tại thời gian tải.
Đoạn mã này hoạt động cho cả:
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())
Xác nhận rằng JIT thực sự đã chạy
Khi JIT thành công, nhật ký sẽ chứa (phần mở rộng tệp là .so trên Linux, .dll trê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ếu không có những dòng đó nhưng Fully accelerated: True vẫn được báo cáo, thì mô hình đã chạy trên cơ chế dự phòng CPU XNNPACK, chứ không phải trên NPU – hãy xem hàng khắc phục sự cố JIT.
7. Benchmark (Điểm chuẩn)
# Dispatch library and the NPU compiler are auto-discovered from the wheel.
litert-benchmark --model=model.tflite --use_npu --num_runs=50
Các cờ cảnh báo phổ biến:
| Cờ | Mặc định | Mô tả |
|---|---|---|
--model PATH
|
— | Đường dẫn đến mô hình .tflite (bắt buộc). |
--signature KEY |
trước tiên | Khoá chữ ký để chạy. |
--use_cpu/--no_cpu
|
bật | Bật/tắt trình tăng tốc CPU/CPU dự phòng. |
--use_gpu |
tắt | Bật trình tăng tốc GPU. |
--use_npu |
tắt | Bật bộ tăng tốc NPU của Intel. |
--require_full_delegation
|
tắt | Thất bại nếu mô hình không được giảm tải hoàn toàn cho bộ tăng tốc đã chọn. |
--num_runs N
|
50 | Số lần lặp lại suy luận có tính thời gian. |
--warmup_runs N
|
5 | Các vòng lặp khởi động không có thời gian trước khi đo. |
--num_threads N |
1 | Số luồng CPU. |
--result_json PATH
|
— | Viết bản tóm tắt JSON (số liệu thống kê về độ trễ, thông lượng, danh sách bộ tăng tốc). |
--verbose |
tắt | Ghi nhật ký bổ sung khi bắt đầu chạy. |
Cờ nâng cao / ghi đè – chỉ cần thiết để trỏ đến các bản dựng tuỳ chỉnh: --dispatch_library_path, --compiler_plugin_path, --runtime_path.
Bánh xe của nhiều nhà cung cấp: ghim JIT vào Intel OV
Lưu ý: Khi
Environment.create()được gọi mà không có đường dẫn rõ ràng, nó sẽ tự động phát hiện các nhà cung cấp trongai_edge_litert/vendors/theo thứ tự bảng chữ cái và đăng ký nhà cung cấp đầu tiên mà nó tìm thấy. Trong quá trình cài đặt của nhiều nhà cung cấp, đây có thể không phải là Intel OV — hãy truyền các thư mục Intel OV một cách rõ ràng để buộc chọn đúng.
- Trình biên dịch pip wheel ships cho mọi nhà cung cấp đã đăng ký (
intel_openvino/,google_tensor/,mediatek/,qualcomm/,samsung/). - Để bắt buộc đường dẫn Intel OV (nên dùng khi bạn cài đặt nhiều SDK của nhà cung cấp), hãy truyền các thư mục Intel OV theo cách thủ công:
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,
)
Thời gian chạy tải mọi thư viện dùng chung mà nó tìm thấy trong thư mục đã cho, vì vậy, việc trỏ đến vendors/intel_openvino/compiler/ chỉ tải trình bổ trợ Intel; các trình bổ trợ Google Tensor / MediaTek / Qualcomm / Samsung trong các thư mục ngang hàng sẽ không bao giờ được chạm đến.
Đối với CLI, các cờ tương đương là:
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
Xác minh việc thực thi NPU
Để xác nhận rằng mô hình thực sự chạy trên NPU, hãy kiểm tra cả hai tín hiệu:
- Nhật ký chứa
Loading shared library: .../LiteRtDispatch_IntelOpenvino.{so,dll}– thư viện điều phối Intel đã được tải (.sotrên Linux,.dlltrên Windows). model.is_fully_accelerated()trả vềTrue– mọi thao tác đều được chuyển sang bộ tăng tốc đã chọn.
Chỉ is_fully_accelerated() là không đủ: nếu thư viện điều phối không bao giờ được tải, thì các thao tác sẽ được chuyển hoàn toàn sang XNNPACK/CPU, chứ không phải NPU.
Thiết lập NPU trên Linux
Lưu ý: Bỏ qua phần này nếu bạn chỉ cần AOT – không bắt buộc phải có NPU thực.
Thông tin: Sử dụng trình điều khiển NPU v1.32.1 (kết hợp với OpenVINO 2026.1). Các trình điều khiển cũ hơn sẽ không hoạt động với
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
Sau đó, hãy chạy đoạn mã cài đặt + xác minh trong phần Bắt đầu nhanh.
Thiết lập NPU trên Windows
Lưu ý: Bỏ qua phần này nếu bạn chỉ cần AOT – không bắt buộc phải có NPU thực.
- Cài đặt trình điều khiển NPU của Intel (32.0.100.4724+) từ Trung tâm tải xuống của Intel.
- Xác minh rằng Trình quản lý thiết bị liệt kê thiết bị NPU trong phần Bộ xử lý thần kinh (hiển thị dưới dạng
Intel(R) AI BoosthoặcIntel(R) NPUtuỳ thuộc vào trình điều khiển). - Chạy đoạn mã cài đặt + xác minh từ Bắt đầu nhanh, thay thế
pipbằngpython -m pip.
Thông tin:
import ai_edge_literttự động đăng ký các thư mục DLL bằngos.add_dll_directory(), nên các tập lệnh Python không cần thiết lậpPATH. Đối với những người dùng không phải Python, hãy chạysetupvars.bathoặc thêm<openvino>/libsvào trướcPATH.
Tạo từ nguồn
Bạn đang sử dụng proxy? Xuất
http_proxy/https_proxy/no_proxytrước khi chạy tập lệnh bản dựng – các tập lệnh này sẽ chuyển tiếp các biến môi trường này vào Docker và vùng chứa.
Linux (Docker, khép kín):
cd LiteRT/docker_build && ./build_wheel_with_docker.sh
Windows (PowerShell, Bazel trong PATH):
.\ci\build_pip_package_with_bazel_windows.ps1
Kết quả đầu ra sẽ nằm trong dist/:
ai_edge_litert-*.whl– bánh xe thời gian chạy.ai_edge_litert_sdk_{intel,qualcomm,mediatek,samsung}-*.tar.gz– vendor sdists.- Intel sdist có kích thước khoảng 5 KB; trình biên dịch NPU
.so/.dllđược tìm nạp tại thời điểmpip install, vì vậy, cùng một sdist hoạt động trên cả Linux và Windows.
Kiểm thử đơn vị
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
Khắc phục sự cố
| Vấn đề | Cách khắc phục |
|---|---|
AOT không thành công: Device with "NPU" name is not registered |
Không tìm nạp được trình biên dịch NPU. Kiểm tra ai_edge_litert_sdk_intel.path_to_sdk_libs() danh sách libopenvino_intel_npu_compiler.so / .dll. Nếu trống, hãy cài đặt lại bằng quyền truy cập mạng hoặc đặt LITERT_OV_OS_ID=ubuntu22/ubuntu24. |
JIT chạy trên CPU thay vì NPU (không có nhật ký Partitioned subgraph, không có nhật ký Loaded plugin, Fully accelerated: True vẫn được in) |
Không phát hiện thấy trình bổ trợ trình biên dịch. Xác nhận ov.get_compiler_plugin_dir() trả về một đường dẫn trong ai_edge_litert/vendors/intel_openvino/compiler/. Nếu bạn cài đặt nhiều SDK của nhà cung cấp, hãy truyền compiler_plugin_path=ov.get_compiler_plugin_dir() một cách rõ ràng đến Environment.create() (hoặc --compiler_plugin_path=... đến litert-benchmark). |
JIT không thành công: Cannot load library .../openvino/libs/libopenvino_intel_npu_compiler.so (Linux) / openvino_intel_npu_compiler.dll (Windows) |
SDK sdist sẽ sao chép trình biên dịch NPU vào openvino/libs/ trong lần import ai_edge_litert_sdk_intel đầu tiên. Nếu quá trình sao chép bị bỏ qua (FS chỉ đọc, thiếu openvino), hãy cài đặt lại ai-edge-litert-sdk-intel sau khi cài đặt openvino, sau đó import ai_edge_litert trong một quy trình mới. |
Level0 pfnCreate2 result: ZE_RESULT_ERROR_UNSUPPORTED_FEATURE |
Nâng cấp trình điều khiển NPU lên phiên bản 1.32.1 (Linux). |
Không tìm thấy /dev/accel/accel0 |
sudo dmesg | grep -i vpu để gỡ lỗi trình điều khiển; khởi động lại sau khi cài đặt. |
| Quyền bị từ chối trên NPU | sudo gpasswd -a ${USER} render && newgrp render. |
| Windows: NPU không có trong Trình quản lý thiết bị | Cài đặt trình điều khiển NPU 32.0.100.4724+ từ Trung tâm tải xuống của Intel. |
Windows: Failed to initialize Dispatch API / thiếu DLL |
Đảm bảo import ai_edge_litert chạy trước (tự động đăng ký các thư mục DLL); đối với những người gọi không phải Python, hãy chạy setupvars.bat hoặc thêm <openvino>/libs vào trước PATH. |
Bản dựng Windows: LNK2001 fixed_address_empty_string, C2491 dllimport, Python 3.12+ fails |
Ràng buộc ABI Protobuf / phiên bản Python – xem ci/build_pip_package_with_bazel_windows.ps1; Bản dựng Windows yêu cầu Python 3.11. |
Các điểm hạn chế
Chỉ thiết bị NPU được hỗ trợ thông qua đường dẫn điều phối OpenVINO. Đối với suy luận CPU, chỉ sử dụng HardwareAccelerator.CPU (XNNPACK).
Các bước tiếp theo
- Bắt đầu với hướng dẫn NPU thống nhất: Tăng tốc NPU bằng LiteRT
- Làm theo các bước chuyển đổi và triển khai tại đó, chọn Qualcomm nếu có thể.
- Đối với LLM, hãy xem phần Thực thi LLM trên NPU bằng LiteRT-LM.