%global _firmwarepath /lib/firmware/updates/intel/vpu/ %global desc %{expand: \ 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). It enables energy-efficient execution of artificial neural network tasks. Added support for Wildcat Lake (WCL) Platform.} Name: intel-npu-driver %if 0%{?fedora} > 43 || 0%{?is_opensuse} Version: 1.32.0 %elif 0%{?rhel} > 9 Version: 1.28.0 %endif %if 0%{?is_opensuse} Release: 0 %else Release: %autorelease %endif Summary: Intel Neural Processing Unit Driver License: MIT AND Apache-2.0 URL: https://github.com/intel/linux-npu-driver Source0: %url/archive/v%{version}/%{name}-%{version}.tar.gz %if 0%{?fedora} >43 || 0%{?is_opensuse} Source1: https://github.com/intel/level-zero-npu-extensions/archive/42768cc73e74f6d371bd9dd51b1860b07774e7ec/level-zero-npu-extensions-42768cc.tar.gz Source2: https://github.com/openvinotoolkit/npu_compiler_elf/archive/82c444bcb9feb0f55fa33e18fbd711ec35426fba/npu_compiler_elf-82c444b.tar.gz %elif 0%{?rhel} > 9 Source1: https://github.com/intel/level-zero-npu-extensions/archive/61e4aeb00afd2a5b6955986269eed3a713c7b562/level-zero-npu-extensions-61e4aeb.tar.gz Source2: https://github.com/openvinotoolkit/npu_compiler_elf/archive/9d91134722e70bf52297adaeb221a0be8e408b14/npu_compiler_elf-9d91134.tar.gz %endif Patch0: npu-driver-fedora.patch Patch1: 0001-Add-Fedora-Linux-as-rpm-packaging-setup.patch ExclusiveArch: x86_64 BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: glibc-devel BuildRequires: libudev-devel BuildRequires: openssl-devel BuildRequires: yaml-cpp-devel %if 0%{?is_opensuse} BuildRequires: gmock BuildRequires: gtest BuildRequires: level-zero-devel %else BuildRequires: gmock-devel BuildRequires: gtest-devel BuildRequires: oneapi-level-zero-devel %endif # openvino-npu_plugin_elf Provides: bundled(openvino-npu_plugin_elf) # level-zero-npu-extensions Provides: bundled(level-zero-npu-extensions) Requires: oneapi-level-zero %description %{desc} %package -n intel-npu-firmware Summary: Intel VPU/NPU firmware libraries Requires: %{name}%{?_isa} = %{version}-%{release} %description -n intel-npu-firmware The intel-npu-firmwre package contains firmware libraries which supports newer platforms x86-64 architectures on Intel Core Ultra Series: - Panther Lake (PTL) - Wildcard Lake (WCL) %package test Summary: Test files for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} %description test The %{name}-test package contains kernel-mode (kmd) and user-mode (umd) parts of the %{name}. %prep %autosetup -N -n linux-npu-driver-%{version} # thirdparty deps tar xvf %{SOURCE1} tar xvf %{SOURCE2} mv level-zero-npu-extensions-*/* third_party/level-zero-npu-extensions mv npu_compiler_elf-*/* third_party/npu_compiler_elf %autopatch -p1 %build %cmake \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DUSE_SYSTEM_LIBRARIES=ON \ -DENABLE_NPU_COMPILER_BUILD=OFF \ %if 0%{?is_opensuse} %cmake_build -j 32 %else %cmake_build %endif %install %cmake_install # remove the unversioned so file rm -vf %{buildroot}%{_libdir}/libze_intel_npu.so # Creating .debug symlinks for symlinks to ELF files %if 0%{?is_opensuse} pushd %{_builddir}/linux-npu-driver-%{version} %else pushd %{_builddir}/%{name}-%{version}-build/linux-npu-driver-%{version} %endif mkdir -p redhat-linux-build/third_party/npu_compiler_elf/core redhat-linux-build/third_party/npu_compiler_elf/hpi_component redhat-linux-build/third_party/npu_compiler_elf/loader mkdir -p redhat-linux-build/umd/vpu_driver/source redhat-linux-build/validation cp -rf third_party/npu_compiler_elf/core/* redhat-linux-build/third_party/npu_compiler_elf/core/ cp -rf third_party/npu_compiler_elf/hpi_component/* redhat-linux-build/third_party/npu_compiler_elf/hpi_component/ cp -rf third_party/npu_compiler_elf/loader/* redhat-linux-build/third_party/npu_compiler_elf/loader/ cp -rf umd/vpu_driver/source/* redhat-linux-build/umd/vpu_driver/source/ cp -rf validation/* redhat-linux-build/validation/ popd # install npu firmwares mkdir -p %{buildroot}%{_firmwarepath} cp -rf firmware/bin/mtl_vpu*.bin firmware/bin/vpu_*xx*.bin %{buildroot}%{_firmwarepath} # install shared NPU tests %if 0%{?is_opensuse} cp -rf build/bin/*npu_*tests %{buildroot}/usr/bin %else cp -rf redhat-linux-build/bin/*npu_*tests %{buildroot}/usr/bin/ %endif %files %license LICENSE.md %doc README.md %{_libdir}/libze_intel_npu.so.1 %{_libdir}/libze_intel_npu.so.%{version} %files -n intel-npu-firmware %defattr(-,root,root) %{_firmwarepath}/mtl_vpu*.bin %{_firmwarepath}/vpu_*xx_*.bin %files test %{_bindir}/npu-kmd-test %{_bindir}/npu-umd-test %{_bindir}/*npu_*tests %changelog %autochangelog