作者:楊亦誠
相信很多開發者夥伴都已經知道,在最新一代的Intel Core Ultra行動終端處理器中已經整合了簡稱為NPU的神經網路加速處理器,以提供低功耗的AI算力,特別適合於PC端需要長時間穩定運作的AI協助工具,例如會議聊天軟體中的自動去背,或是畫面超解析度等應用。而OpenVINO工具套件也在第一時間對NPU進行了配接。接下來就讓我們一起看看如何在Intel Core Ultra處理器上搭建基礎環境,並呼叫NPU進行模型推論任務。
NPU 驅動程式安裝
首先我們需要確保是否安裝了最新版的NPU驅動程式,可以透過Windows任務管理調出當前NPU驅動版本資訊。

NPU在Windows工作管理員中顯示驅動程式版本。
透過以下連結可查詢當前最新的NPU驅動程式版本:https://www.intel.com/content/www/us/en/download/794734/intel-npu-driver-windows.html

NPU驅動程式下載頁面。
如果想更新或是重裝NPU驅動程式,可以參考以下連結的指引來下載並安裝驅動程式:https://docs.openvino.ai/2023.3/openvino_docs_install_guides_configurations_for_intel_npu.html
OpenVINO下載和安裝
由於目前NPU Plugin還沒有被整合在OpenVINO的PyPI安裝套件中,因此我們需要透過下載OpenVINO Runtime壓縮檔案的方式進行安裝。

OpenVINO下載頁面。
整個安裝過程非常簡單,只需將壓縮檔案解壓縮至在本地路徑下既可。具體方法可以參考上圖紅框的安裝說明。

將壓縮檔案解壓縮至本地路徑。
Python環境配置
透過執行壓縮檔案中的setupvars.bat環境配置腳本,我們就可以直接在Python環境下載入OpenVINO Runtime和NPU Plugin環境。同時利用OpenVINO的Python API指令,我們可以快速驗證NPU是否可以被正常呼叫。

Python環境中驗證NPU呼叫。
C++ 環境配置
不同於Python,Windows上的C++應用需要依賴於CMake或者是Visual Studio的環境進行除錯,因此這裡我們需要簡單配置OpenVINO程式庫的路徑。下面是以Visual Studio中新建專案的屬性配置頁面為例。

配置OpenVINO Runtime標頭檔路徑。

配置OpenVINO Runtime動態程式庫路徑。

配置OpenVINO Runtime及frontednd靜態程式庫路徑。

在Windows本地添加OpenVINO環境變數路徑。
完成Visual Studio專案屬性配置後,我們可以透過以下範例程式碼測試NPU是否可以被檢測及呼叫。
#include
#include <openvino/openvino.hpp>
int main(int argc, char* argv[]) {
// -------- Get OpenVINO runtime version --------
std::cout << ov::get_openvino_version() << std::endl;
// -------- Step 1. Initialize OpenVINO Runtime Core --------
ov::Core core;
// -------- Step 2. Get list of available devices --------
std::vector availableDevices = core.get_available_devices();
// -------- Step 3. Query and print supported metrics and config keys --------
std::cout << "available devices: " << std::endl;
for (auto&& device : availableDevices) {
std::cout << device << std::endl;
}
}

VS環境中驗證NPU呼叫。
測試效果
當完成NPU安裝後,我們可以透過 OpenVINO Notebooks 中提供的範例簡單測試NPU的性能。這個範例會透過以下Python程式碼來將模型部署在NPU上。
compiled_model = core.compile_model("model.xml", "NPU")

即時人體關鍵點示範效果。
可以看到 NPU 在運作即時人體關鍵點檢測模型時的效果和速度是非常不錯的,達到了90FPS的輸送量,同時推論任務幾乎也沒有佔用CPU額外的資源,真正做到了在提供高算力的同時,減輕CPU和GPU的任務負載。
參考資料:
- OpenVINO下載與安裝方式:https://docs.openvino.ai/2023.3/openvino_docs_install_guides_overview.html?VERSION=v_2023_3_0&OP_SYSTEM=WINDOWS&DISTRIBUTION=ARCHIVE
- NPU 環境配置:https://docs.openvino.ai/2023.3/openvino_docs_install_guides_configurations_for_intel_npu.html
- OpenVINO Notebooks範例:https://github.com/openvinotoolkit/openvino_notebooks
- 輕薄型筆電OK!利用OpenVINO部署Phi-3.5「全家餐」 - 2024/09/20
- LangChain框架已正式支援OpenVINO! - 2024/06/12
- 如何在Windows平台呼叫NPU部署深度學習模型 - 2024/03/04
訂閱MakerPRO知識充電報
與40000位開發者一同掌握科技創新的技術資訊!