Skip to content

Commit

Permalink
Update README and docs/overview.md (#33)
Browse files Browse the repository at this point in the history
Applied style changes to README.md and docs/overview.md. Added a table with supported devices in docs/overview.md. Added new section Kernel module driver to docs/overview.md. Bumped the date in LICENSE.md. Added missing libudev-dev to build dependencies
  • Loading branch information
jwludzik authored Jun 19, 2024
1 parent 09225e2 commit ac8fe1e
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 39 deletions.
2 changes: 1 addition & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (C) 2022 Intel Corporation
Copyright (C) 2022-2024 Intel Corporation

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

Expand Down
19 changes: 8 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ SPDX-License-Identifier: MIT
-->

# Intel® NPU
# Intel® NPU driver

## Introduction

This repository contains User Mode Driver for Intel® NPU device.
This repository contains driver for Intel® NPU device.

Intel® NPU device is an AI inference accelerator integrated with Intel client CPUs,
starting from Intel® Core™ Ultra generation of CPUs (formerly known as Meteor Lake).
Expand All @@ -22,13 +22,13 @@ To make sure that your system has an NPU available, please follow
The full device name is Neural Processing Unit, but the Linux kernel driver uses
the older name - Versatile Processing Unit (VPU).

## Driver releases
## Releases

[The release page contains the binaries and supported component versions](https://github.com/intel/linux-npu-driver/releases).

## Build the driver and common issues
## Build and troubleshooting

[The docs directory contains overiew.md that explains how to build the driver and common issues](docs/overview.md)
[See docs/overview.md](docs/overview.md)

## License

Expand All @@ -38,11 +38,8 @@ You may obtain a copy of the license at: https://opensource.org/licenses/MIT

## See also

* [OpenVINO™ documentation](https://docs.openvino.ai/2024/home.html)
* [OpenVINO™ repository](https://github.com/openvinotoolkit/openvino.git)
* [NPU plugin - compiler](https://github.com/openvinotoolkit/npu_plugin.git)
* [Intel® OneApi Level Zero Specification API C/C++ header files](https://github.com/oneapi-src/level-zero/)
* [Running NPU tasks using Intel® NPU Acceleration Library](https://intel.github.io/intel-npu-acceleration-library/)
* [Intel® OneApi Level Zero](https://github.com/oneapi-src/level-zero/)
* [Intel® NPU Acceleration Library](https://intel.github.io/intel-npu-acceleration-library/)
* [OpenVINO™](https://github.com/openvinotoolkit/openvino.git)
* [OpenVINO™ AI Plugins for GIMP](https://github.com/intel/openvino-ai-plugins-gimp)
* [OpenVINO™ AI Plugins for Audacity*](https://github.com/intel/openvino-plugins-ai-audacity)
* [OpenVINO™ Plugins for OBS Studio](https://github.com/intel/openvino-plugins-for-obs-studio)
71 changes: 44 additions & 27 deletions docs/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,12 +106,55 @@ export ZE_INTEL_NPU_LOGMASK=$((1<<4|1<<3|1<<17))

</details>

## Supported devices

The Intel® NPU driver supports following Intel® processor families

|Platform|Kernel support|NPU driver release|
|---|---|---|
|[Meteor Lake](https://ark.intel.com/content/www/us/en/ark/products/codename/90353/products-formerly-meteor-lake.html)|v6.5.0-35-generic - Ubuntu22.04 Stock kernel|[v1.1.0](https://github.com/intel/linux-npu-driver/tree/v1.1.0)|
|Arrow Lake|[v6.8.12](https://kernel.ubuntu.com/mainline/v6.8.12/)|[v1.5.0](https://github.com/intel/linux-npu-driver/tree/v1.5.0)|
|Lunar Lake|[v6.8.12](https://kernel.ubuntu.com/mainline/v6.8.12/)|[v1.5.0](https://github.com/intel/linux-npu-driver/tree/v1.5.0)|

## Kernel module driver

The kernel module driver `intel_vpu` can be found in [drivers/accel
tree](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/accel/ivpu?h=v6.8.1)
in the kernel sources.

<details>
<summary>Enable the intel_vpu module in the kernel config for compilation</summary>

In the Kernel Menu Configuration from `Device Driver` select `Compute Acceleration Framework`
and set "modularize" for `Intel NPU (Neural Processing Unit)`.
</details>
<details>
<summary>Finding the intel_vpu kernel module in the system</summary>

```
# check if the intel_vpu exists is in the system
modinfo intel_vpu
# check if the intel_vpu is loaded in the kernel
lsmod | grep intel_vpu
# if the previous command nothing produced, load the intel_vpu
sudo modprobe intel_vpu
# verify that the intel_vpu has been loaded successfully
sudo dmesg | tail -n 20
# check if accel device is available
ls /dev/accel/accel0
```
</details>

## Building a standalone driver

Install the required dependencies in Ubuntu:
```
sudo apt update
sudo apt install -y build-essential git git-lfs cmake libudev-dev libboost-all-dev libssl-dev
sudo apt install -y build-essential git git-lfs cmake libudev-dev libboost-all-dev libssl-dev libudev-dev
```

Commands to build the driver:
Expand Down Expand Up @@ -228,32 +271,6 @@ cmake -B build -S . -G Ninja
```
</details>
<details>
<summary>Enable the intel_vpu module in the kernel config for compilation</summary>

In the Kernel Menu Configuration from `Device Driver` select `Compute Acceleration Framework`
and set "modularize" for `Intel NPU (Neural Processing Unit)`.
</details>
<details>
<summary>Finding the intel_vpu kernel module in the system</summary>

```
# check if the intel_vpu exists is in the system
modinfo intel_vpu
# check if the intel_vpu is loaded in the kernel
lsmod | grep intel_vpu
# if the previous command nothing produced, load the intel_vpu
sudo modprobe intel_vpu
# verify that the intel_vpu has been loaded successfully
sudo dmesg | tail -n 20
# check if accel device is available
ls /dev/accel/accel0
```
</details>
<details>
<summary>Enable driver log using an environment variable</summary>

Valid logging levels are `ERROR`, `WARNING`, `INFO` (and `VERBOSE` for driver
Expand Down

0 comments on commit ac8fe1e

Please sign in to comment.