Skip to content

Commit 81a0ceb

Browse files
authored
NPU Driver 1.33.0 release unified 2026WW20 (#139)
Upgraded the level-zero-npu-extensions submodule to c7cb5d2. Added new firmware binaries. Introduced changes to the driver and tests. Signed-off-by: Schulfer, Magdalena magdalena.schulfer@intel.com Signed-off-by: Wludzik, Jozef jozef.wludzik@intel.com Signed-off-by: Pawlak, Jakub jakub.pawlak@intel.com Signed-off-by: Tabaka, Mateusz mateusz.tabaka@intel.com
1 parent bcf60e7 commit 81a0ceb

122 files changed

Lines changed: 2800 additions & 3294 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CMakeLists.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ if (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.24")
1010
cmake_policy(SET CMP0135 NEW)
1111
endif()
1212

13-
set(STACK_VERSION 1.32.1 CACHE STRING "Main project version")
13+
set(STACK_VERSION 1.33.0 CACHE STRING "Main project version")
1414
project(npu-linux-driver VERSION ${STACK_VERSION})
1515

1616
set(BUILD_NUMBER "dev-0" CACHE STRING "Build number composed of name and unique number used as driver version")
@@ -43,15 +43,17 @@ option(ENABLE_COMPILATION_FLAGS_OVERRIDE "Allow to override flags passed to comp
4343
# The npu_elf target is picked up from the compiler package
4444
option(ENABLE_NPU_ELF_BUILD "Enable building NPU Elf library in driver" OFF)
4545
option(ENABLE_TOOLS_BUILD "Enable building tools" OFF)
46+
option(ENABLE_NPU_ALT_DEPENDENCY_PATH_OVERRIDE "Allow to override path for dependencies in driver" OFF)
4647

48+
message(STATUS "option ENABLE_OPENVINO_PACKAGE: ${ENABLE_OPENVINO_PACKAGE}")
4749
message(STATUS "option ENABLE_NPU_COMPILER_BUILD: ${ENABLE_NPU_COMPILER_BUILD}")
4850
message(STATUS "option ENABLE_NPU_PERFETTO_BUILD: ${ENABLE_NPU_PERFETTO_BUILD}")
49-
message(STATUS "option ENABLE_OPENVINO_PACKAGE: ${ENABLE_OPENVINO_PACKAGE}")
5051
message(STATUS "option ENABLE_VALIDATION_BUILD: ${ENABLE_VALIDATION_BUILD}")
5152
message(STATUS "option ENABLE_OFFLINE_COMPILATION_SUPPORT: ${ENABLE_OFFLINE_COMPILATION_SUPPORT}")
5253
message(STATUS "option ENABLE_COMPILATION_FLAGS_OVERRIDE: ${ENABLE_COMPILATION_FLAGS_OVERRIDE}")
5354
message(STATUS "option ENABLE_NPU_ELF_BUILD: ${ENABLE_NPU_ELF_BUILD}")
5455
message(STATUS "option ENABLE_TOOLS_BUILD: ${ENABLE_TOOLS_BUILD}")
56+
message(STATUS "option ENABLE_NPU_ALT_DEPENDENCY_PATH_OVERRIDE: ${ENABLE_NPU_ALT_DEPENDENCY_PATH_OVERRIDE}")
5557

5658
include(GNUInstallDirs)
5759

compiler/compiler_source.cmake

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,16 @@ endif()
1515
include(ExternalProject)
1616

1717
set(OPENVINO_REPOSITORY https://github.com/openvinotoolkit/openvino.git)
18-
set(OPENVINO_REVISION f3a30a671d32c8e99cc496f0cc9d0089711fbb82)
18+
set(OPENVINO_REVISION 3687ccc8dab6a9ad5debfd9263414e6357c43d6f)
1919
set(OPENCV_REVISION c1c893ff73581567b6d1a847e8dafc9c052d907c)
20-
set(GENAI_REVISION adc69c578f02b9b07aaf0d15ff35747ae3962a52)
21-
set(ONNXRUNTIME_TAG microsoft:058787ceead760166e3c50a0a4cba8a833a6f53f)
22-
set(ONNXRUNTIME_REVISION 058787ceead760166e3c50a0a4cba8a833a6f53f)
20+
set(GENAI_REVISION c8e42994c16328a903d1eb0fd9dd0b3617323c63)
21+
set(ONNXRUNTIME_TAG microsoft:2d924974ef147392ced8409d36bd6d2e7fcc8a74)
22+
set(ONNXRUNTIME_REVISION 2d924974ef147392ced8409d36bd6d2e7fcc8a74)
2323

24-
set(NPU_COMPILER_TAG npu_ud_2026_12_1_rc1)
25-
set(NPU_COMPILER_REVISION da4d79af8cb4bef6a71394bf0e22d998e5fe5b3a)
24+
set(NPU_COMPILER_TAG npu_ud_2026_20_rc1)
25+
set(NPU_COMPILER_REVISION 16cb63249167413ea80131472293630e3a1577bb)
2626
# Compiler might use different OpenVINO revision
27-
set(NPU_COMPILER_OPENVINO_REVISION b7f9dbfa7944a1c576b87a4061c298636ae9f2a7)
27+
set(NPU_COMPILER_OPENVINO_REVISION e4e180d12fa7df6240235926d4ab8084df40e0a1)
2828

2929
set(OPENVINO_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/src/openvino")
3030
file(MAKE_DIRECTORY ${OPENVINO_SOURCE_DIR})

compiler/include/npu_driver_compiler.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ extern "C" {
2323
#endif
2424

2525
#define VCL_COMPILER_VERSION_MAJOR 7
26-
#define VCL_COMPILER_VERSION_MINOR 6
26+
#define VCL_COMPILER_VERSION_MINOR 7
2727
#define VCL_PROFILING_VERSION_MAJOR 2
2828
#define VCL_PROFILING_VERSION_MINOR 0
2929

@@ -268,6 +268,10 @@ VCL_APIEXPORT vcl_result_t VCL_APICALL vclAllocatedExecutableCreate2(vcl_compile
268268
vcl_allocator2_t* allocator, uint8_t** blobBuffer,
269269
uint64_t* blobSize);
270270

271+
VCL_APIEXPORT vcl_result_t VCL_APICALL vclAllocatedExecutableCreate3(
272+
vcl_compiler_handle_t compiler, vcl_executable_desc_t desc, vcl_allocator2_t* allocator, uint8_t** blobBuffer,
273+
uint64_t* blobSize, uint8_t** compatibilityReqBuffer, uint64_t* compatibilityReqSize);
274+
271275
VCL_APIEXPORT vcl_result_t VCL_APICALL vclAllocatedExecutableCreateWSOneShot(vcl_compiler_handle_t compiler,
272276
vcl_executable_desc_t desc,
273277
vcl_allocator2_t* allocator);

compiler/npu_compiler.cmake

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ endif()
1717
message(STATUS "NPU_COMPILER_PACKAGE_DIR: ${NPU_COMPILER_PACKAGE_DIR}")
1818
target_include_directories(npu_compiler INTERFACE ${NPU_COMPILER_PACKAGE_DIR})
1919

20-
set(NPU_COMPILER_LIBS ${NPU_COMPILER_PACKAGE_DIR}/lib/libnpu_driver_compiler.so)
20+
set(NPU_COMPILER_LIBS ${NPU_COMPILER_PACKAGE_DIR}/lib/libopenvino_intel_npu_compiler_loader.so
21+
${NPU_COMPILER_PACKAGE_DIR}/lib/libopenvino_intel_npu_compiler.so)
2122

2223
if(NOT ANDROID)
2324
# Set the RPATH for the npu_compiler to find the shared library at runtime

compiler/npu_compiler_build.cmake

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ list(APPEND NPU_COMPILER_CMAKE_ARGS "-D ENABLE_INTEL_GPU=OFF")
3939
list(APPEND NPU_COMPILER_CMAKE_ARGS "-D ENABLE_JS=OFF")
4040
list(APPEND NPU_COMPILER_CMAKE_ARGS "-D ENABLE_MULTI=OFF")
4141
list(APPEND NPU_COMPILER_CMAKE_ARGS "-D ENABLE_INTEL_NPU=ON")
42+
# Disable downloading prebuilt NPU compiler by OpenVINO
43+
list(APPEND NPU_COMPILER_CMAKE_ARGS "-D ENABLE_INTEL_NPU_COMPILER=OFF")
4244
list(APPEND NPU_COMPILER_CMAKE_ARGS "-D ENABLE_INTEL_NPU_INTERNAL=OFF")
4345
list(APPEND NPU_COMPILER_CMAKE_ARGS "-D ENABLE_INTEL_NPU_PROTOPIPE=OFF")
4446
list(APPEND NPU_COMPILER_CMAKE_ARGS "-D ENABLE_OV_IR_FRONTEND=ON")
@@ -107,7 +109,7 @@ ExternalProject_Add(
107109
BUILD_COMMAND
108110
${CMAKE_COMMAND}
109111
--build ${NPU_COMPILER_BINARY_DIR}
110-
--target compilerTest profilingTest vpuxCompilerL0Test loaderTest
112+
--target compilerTest profilingTest vpuxCompilerL0Test loaderTest openvino_intel_npu_compiler
111113
--parallel ${PARALLEL_PROCESSES}
112114
INSTALL_COMMAND
113115
${CMAKE_COMMAND}
@@ -116,7 +118,8 @@ ExternalProject_Add(
116118
--strip
117119
--component CiD
118120
BYPRODUCTS
119-
${NPU_COMPILER_PACKAGE_DIR}/lib/libnpu_driver_compiler.so
121+
${NPU_COMPILER_PACKAGE_DIR}/lib/libopenvino_intel_npu_compiler_loader.so
122+
${NPU_COMPILER_PACKAGE_DIR}/lib/libopenvino_intel_npu_compiler.so
120123
${NPU_COMPILER_PACKAGE_DIR}/vpux_elf/lib/Release/libnpu_elf.a
121124
)
122125

compiler/openvino_build.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ set(OPENVINO_CMAKE_ARGS
3131
-DENABLE_CLANG_TIDY=OFF
3232
-DENABLE_CPPLINT=OFF
3333
-DENABLE_INTEL_NPU_PROTOPIPE=ON
34+
# TODO: Temporarily disable NPU compiler in plugin (EISW-214028)
35+
-DENABLE_INTEL_NPU_COMPILER=OFF
3436
-DTHREADING=${THREADING})
3537
set(OPENVINO_BUILD_DEPS openvino_source)
3638
set(BUILD_GENAI OFF)

firmware/bin/vpu_37xx_v1.bin

1.16 KB
Binary file not shown.

firmware/bin/vpu_40xx_v1.bin

-4.38 KB
Binary file not shown.

firmware/bin/vpu_50xx_v1.bin

-160 Bytes
Binary file not shown.

firmware/include/api/vpu_jsm_api.h

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
/*
2424
* Minor version changes when API backward compatibility is preserved.
2525
*/
26-
#define VPU_JSM_API_VER_MINOR 35
26+
#define VPU_JSM_API_VER_MINOR 40
2727

2828
/*
2929
* API header changed (field names, documentation, formatting) but API itself has not been changed
@@ -165,12 +165,18 @@ enum {
165165
#define VPU_TRACE_ENTITY_NAME_MAX_LEN 32
166166

167167
/*
168-
* Max length (including trailing NULL char) of a dyndbg command.
168+
* Max length of a command payload.
169169
*
170-
* NOTE: 96 is used so that the size of 'struct vpu_ipc_msg' in the JSM API is
171-
* 128 bytes (multiple of 64 bytes, the cache line size).
170+
* Note: The payload size is limited to 96 bytes to ensure that the entire IPC
171+
* message including the 32 byte header (struct vpu_ipc_msg) fits into two cache
172+
* lines (128 bytes).
173+
*/
174+
#define VPU_IPC_MSG_MAX_PAYLOAD_SIZE 96
175+
176+
/*
177+
* Max length (including trailing NULL char) of a dyndbg command.
172178
*/
173-
#define VPU_DYNDBG_CMD_MAX_LEN 96
179+
#define VPU_DYNDBG_CMD_MAX_LEN VPU_IPC_MSG_MAX_PAYLOAD_SIZE
174180

175181
/*
176182
* For HWS command queue scheduling, we can prioritise command queues inside the
@@ -617,6 +623,10 @@ enum vpu_ipc_msg_type {
617623
* @see vpu_ipc_msg_payload_freq_config
618624
*/
619625
VPU_IPC_MSG_FREQ_CONFIG = 0x111f,
626+
/**
627+
* Reserved command for future extensions.
628+
*/
629+
VPU_IPC_MSG_EXT_0 = 0x1120,
620630
/**
621631
* Dump VPU state. To be used for debug purposes only.
622632
* This command has no payload.
@@ -784,6 +794,10 @@ enum vpu_ipc_msg_type {
784794
* @see vpu_ipc_msg_payload_freq_config
785795
*/
786796
VPU_IPC_MSG_FREQ_CONFIG_RSP = 0x221f,
797+
/**
798+
* Reserved response for future extensions.
799+
*/
800+
VPU_IPC_MSG_EXT_0_RSP = 0x2220,
787801
/**
788802
* Response to state dump control command.
789803
* This command has no payload.
@@ -1754,6 +1768,7 @@ union vpu_ipc_msg_payload {
17541768
struct vpu_ipc_msg_payload_pwr_d0i3_enter pwr_d0i3_enter;
17551769
struct vpu_ipc_msg_payload_pwr_dct_control pwr_dct_control;
17561770
struct vpu_ipc_msg_payload_freq_config freq_config;
1771+
uint8_t data[VPU_IPC_MSG_MAX_PAYLOAD_SIZE];
17571772
};
17581773
typedef union vpu_ipc_msg_payload vpu_ipc_msg_payload_t;
17591774

0 commit comments

Comments
 (0)