Linux NPU Driver v1.35.0
- Replaced the Perfetto submodule with a copy of the Perfetto SDK
✨ Highlights
- 🆕 Replaced the Perfetto submodule with a copy of the Perfetto SDK
⚙️ Verified Configuration
| Platform | System | Kernel | Firmware |
|---|---|---|---|
| Meteor Lake | Ubuntu 24.04 LTS | 6.17.0-40-generic | 20260630*MTL_CLIENT_SILICON-NVR+NN-deployment*3b431d96211eb618edf1f7c444daa8185f1e686c*3b431d96211eb618edf1f7c444daa8185f1e686c*3b431d96211 |
| Arrow Lake | Ubuntu 24.04 LTS | 6.17.0-40-generic | 20260630*MTL_CLIENT_SILICON-NVR+NN-deployment*3b431d96211eb618edf1f7c444daa8185f1e686c*3b431d96211eb618edf1f7c444daa8185f1e686c*3b431d96211 |
| Lunar Lake | Ubuntu 24.04 LTS | 6.17.0-40-generic | Jun 30 2026*NPU40xx*build/ci/npu-fw-ci-ci_branch_UD202628_npu_release_26ww25-20260626_085052-f9a611865dbf3e6b37a17a0b01a7e81e7fc812e7-1-g3b431d96211*3b431d96211eb618edf1f7c444daa8185f1e686c |
| Panther Lake | Ubuntu 24.04 LTS | 6.17.0-40-generic | Jun 30 2026*NPU50xx*build/ci/npu-fw-ci-ci_branch_UD202628_npu_release_26ww25-20260626_085052-f9a611865dbf3e6b37a17a0b01a7e81e7fc812e7-1-g3b431d96211*3b431d96211eb618edf1f7c444daa8185f1e686c |
| Wildcat Lake | Ubuntu 24.04 LTS | 6.17.0-40-generic | Jun 30 2026*NPU50xx*build/ci/npu-fw-ci-ci_branch_UD202628_npu_release_26ww25-20260626_085052-f9a611865dbf3e6b37a17a0b01a7e81e7fc812e7-1-g3b431d96211*3b431d96211eb618edf1f7c444daa8185f1e686c |
🧩 Common Components
The following table lists the common software components and their versions used in this configuration:
| Component | Version / Details |
|---|---|
| Level Zero | v1.28.2 |
| OpenVINO | 2026.2 |
| NPU Compiler | npu_ud_2026_28_rc1, built using OpenVINO_rev.4089686 |
| GPU Driver | Intel GPU driver from ppa:kobuk-team/intel-graphics: 26.22.38646.6 (see) |
🛠️ Installation Procedure
- Remove old packages
sudo dpkg --purge --force-remove-reinstreq intel-driver-compiler-npu intel-fw-npu intel-level-zero-npu intel-level-zero-npu-dbgsym
- Download all *.deb package
wget https://github.com/intel/linux-npu-driver/releases/download/v1.35.0/linux-npu-driver-v1.35.0.20260722-29947505341-ubuntu2404.tar.gz
tar -xf linux-npu-driver-v1.35.0.20260722-29947505341-ubuntu2404.tar.gz
- Install libtbb12 which is a dependency for intel-driver-compiler-npu
sudo apt update
sudo apt install libtbb12
- Install all packages
sudo dpkg -i *.deb
- Install libze1 package
wget https://snapshot.ppa.launchpadcontent.net/kobuk-team/intel-graphics/ubuntu/20260606T100000Z/pool/main/l/level-zero-loader/libze1_1.28.2-1~24.04~ppa1_amd64.deb
sudo dpkg -i libze1_*.deb
⚠️ In case of conflict or error in libze1 installation, remove previously installed Level Zero version:
sudo dpkg --purge --force-remove-reinstreq level-zero level-zero-devel
- Optional add your user to
rendergroup
sudo gpasswd -a ${USER} render
newgrp render
- Optional reboot
sudo reboot
# if everything works, we should see /dev/accel/accel0 device
ls /dev/accel/accel0
/dev/accel/accel0
# to receive intel_vpu state
sudo dmesg
🛡️GPG sign & Verify deb packages
Signing data with a GPG key allows the recipient of the data to check whether any modifications have occurred after the data was signed.
Since release 1.22.0, each Debian package file (.deb file) has been signed with a GPG key, and the signature is included in the archive.
The Public Key has been uploaded to https://keys.openpgp.org/search?q=EA267657A608300C296B8F8AD52C9665A4077678
To verify the signature:
# Download and import the Public Key
curl https://keys.openpgp.org/vks/v1/by-fingerprint/EA267657A608300C296B8F8AD52C9665A4077678 | gpg --import
# Download the driver package
wget https://github.com/intel/linux-npu-driver/releases/download/v1.35.0/linux-npu-driver-v1.35.0.20260722-29947505341-ubuntu2404.tar.gz
tar -xf linux-npu-driver-v1.35.0.20260722-29947505341-ubuntu2404.tar.gz
# Verify signatures
for PACKAGE in *deb.asc; do gpg --verify $PACKAGE; done
🧪 UMD Test Results
| Platform | OS / Kernel | Command | ALL | PASSED | FAILED | SKIPPED |
|---|---|---|---|---|---|---|
| MTL | Ubuntu 24.04 / 6.17.0-40-generic | npu-umd-test -c none | 266 | ✅ 170 | ❌ 0 | ⚠️ 96 |
sudo npu-umd-test --dma-heap -c none | 4 | ✅ 4 | ❌ 0 | ⚠️ 0 | ||
sudo npu-umd-test --dma-heap -c extend.yaml | 5 | ✅ 5 | ❌ 0 | ⚠️ 0 | ||
npu-umd-test --ze-init-test -c none | 6 | ✅ 6 | ❌ 0 | ⚠️ 0 | ||
npu-umd-test --ze-init-test -c extend.yaml | 6 | ✅ 6 | ❌ 0 | ⚠️ 0 | ||
npu-umd-test --gpu -c none | 3 | ✅ 2 | ❌ 0 | ⚠️ 1 | ||
npu-umd-test --gpu -c extend.yaml | 3 | ✅ 2 | ❌ 0 | ⚠️ 1 | ||
npu-umd-test -c extend.yaml | 379 | ✅ 315 | ❌ 0 | ⚠️ 64 | ||
| ARL | Ubuntu 24.04 / 6.17.0-40-generic | npu-umd-test -c none | 266 | ✅ 170 | ❌ 0 | ⚠️ 96 |
sudo npu-umd-test --dma-heap -c none | 4 | ✅ 4 | ❌ 0 | ⚠️ 0 | ||
sudo npu-umd-test --dma-heap -c extend.yaml | 5 | ✅ 5 | ❌ 0 | ⚠️ 0 | ||
npu-umd-test --ze-init-test -c none | 6 | ✅ 6 | ❌ 0 | ⚠️ 0 | ||
npu-umd-test --ze-init-test -c extend.yaml | 6 | ✅ 6 | ❌ 0 | ⚠️ 0 | ||
npu-umd-test --gpu -c none | 3 | ✅ 2 | ❌ 0 | ⚠️ 1 | ||
npu-umd-test --gpu -c extend.yaml | 3 | ✅ 2 | ❌ 0 | ⚠️ 1 | ||
npu-umd-test -c extend.yaml | 379 | ✅ 315 | ❌ 0 | ⚠️ 64 | ||
| LNL | Ubuntu 24.04 / 6.17.0-40-generic | npu-umd-test -c none | 266 | ✅ 170 | ❌ 0 | ⚠️ 96 |
sudo npu-umd-test --dma-heap -c none | 4 | ✅ 4 | ❌ 0 | ⚠️ 0 | ||
sudo npu-umd-test --dma-heap -c extend.yaml | 5 | ✅ 5 | ❌ 0 | ⚠️ 0 | ||
npu-umd-test --ze-init-test -c none | 6 | ✅ 6 | ❌ 0 | ⚠️ 0 | ||
npu-umd-test --ze-init-test -c extend.yaml | 6 | ✅ 6 | ❌ 0 | ⚠️ 0 | ||
npu-umd-test --gpu -c none | 3 | ✅ 3 | ❌ 0 | ⚠️ 0 | ||
npu-umd-test --gpu -c extend.yaml | 3 | ✅ 3 | ❌ 0 | ⚠️ 0 | ||
npu-umd-test -c extend.yaml | 379 | ✅ 343 | ❌ 0 | ⚠️ 36 | ||
| PTL | Ubuntu 24.04 / 6.17.0-40-generic | npu-umd-test -c none | 266 | ✅ 170 | ❌ 0 | ⚠️ 96 |
sudo npu-umd-test --dma-heap -c none | 4 | ✅ 4 | ❌ 0 | ⚠️ 0 | ||
sudo npu-umd-test --dma-heap -c extend.yaml | 5 | ✅ 5 | ❌ 0 | ⚠️ 0 | ||
npu-umd-test --ze-init-test -c none | 6 | ✅ 6 | ❌ 0 | ⚠️ 0 | ||
npu-umd-test --ze-init-test -c extend.yaml | 6 | ✅ 6 | ❌ 0 | ⚠️ 0 | ||
npu-umd-test --gpu -c none | 3 | ✅ 3 | ❌ 0 | ⚠️ 0 | ||
npu-umd-test --gpu -c extend.yaml | 3 | ✅ 3 | ❌0 | ⚠️ 0 | ||
npu-umd-test -c extend.yaml | 379 | ✅ 343 | ❌ 0 | ⚠️ 36 | ||
| WCL | Ubuntu 24.04 / 6.17.0-40-generic | npu-umd-test -c none | 266 | ✅ 170 | ❌ 0 | ⚠️ 96 |
sudo npu-umd-test --dma-heap -c none | 4 | ✅ 4 | ❌ 0 | ⚠️ 0 | ||
sudo npu-umd-test --dma-heap -c extend.yaml | 5 | ✅ 5 | ❌ 0 | ⚠️ 0 | ||
npu-umd-test --ze-init-test -c none | 6 | ✅ 6 | ❌ 0 | ⚠️ 0 | ||
npu-umd-test --ze-init-test -c extend.yaml | 6 | ✅ 6 | ❌ 0 | ⚠️ 0 | ||
npu-umd-test --gpu -c none | 3 | ✅ 3 | ❌ 0 | ⚠️ 0 | ||
npu-umd-test --gpu -c extend.yaml | 3 | ✅ 3 | ❌ 0 | ⚠️ 0 | ||
npu-umd-test -c extend.yaml | 379 | ✅ 343 | ❌ 0 | ⚠️ 36 |
[!CAUTION] Due to a firmware issue, the
InOrderExecution.RunCopyUsingCmdQueueInOrderModetest occasionally fails on PTL and WCL.
For the
-coption ofnpu-umd-test, theextend.yamlconfiguration file was used. It can be obtained from the UMD testing documentation and examples provided in the Intel NPU driver repository (umd-testing.md). The tests were run with the following YAML configuration:# filename: extend.yaml model_dir: models/ image_dir: images/ graph_execution: - path: add_abc/add_abc.xml - path: resnet50.xml name: resnet50 in: [ dog.bmp ] class_index: [ 258 ] - path: yolov8s.xml name: yolov8s image_classification_imagenet: - path: resnet50.xml name: resnet50 in: [ dog.bmp ] class_index: [ 258 ] driver_cache: - path: add_abc/add_abc.xml - path: resnet50.xml - path: yolov8s.xml multi_inference: - name: "ObjectRecognitionPipeline" pipeline: - path: resnet50.xml target_fps: 60 exec_time_in_secs: 10 - path: yolov8s.xml target_fps: 30 exec_time_in_secs: 10
🔍 Driver Overview
[!IMPORTANT]
For more information check README.md