色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用OpenVINO?條件編譯功能,壓縮Windows應用體積

英特爾物聯網 ? 來源:英特爾物聯網 ? 2025-01-13 10:26 ? 次閱讀

作者:

楊亦誠 英特爾 AI 軟件工程師

在 OpenVINO 編譯過程中,我們可以根據應用對于硬件平臺的需求,關閉或開指定推理后端的編譯,以達到簡化 OpenVINO 運行庫的目的,例如 cmake -DENABLE_INTEL_GPU=OFF 便可以取消 GPU plugin 庫的編譯。除此以外 OpenVINO 還提供了條件編譯功能,用于針對特定模型進行運行庫壓縮,接下來就讓我們一起來看下如何在 Windows 操作系統上實現這一功能。

1. 環境安裝與配置

第一步,我們需要確保已經在 Windows 上安裝了 Visual Studio 編譯環境。如果是第一次安裝 Visual Studio 可以通過以下鏈接下載。

https://visualstudio.microsoft.com/

在安裝組件過程中,選擇“使用C++的桌面開發”。

bf71685a-cf32-11ef-9310-92fbcf53809c.png

Visual Studio 安裝示例

安裝完畢后建議使用 Visual Studio 自帶的命令行工具“x64 Native Tools Command Prompt”對編譯環境進行初始化。

bf97b884-cf32-11ef-9310-92fbcf53809c.png

搜索“x64 Native Tools Command Prompt”

2. 預編譯

在完成編譯環境初始化后,會看到以下提醒。接下來我們就可以在該命令行終端上輸入編譯指令了。

bfb7e46a-cf32-11ef-9310-92fbcf53809c.png

編譯環境初始化成功

在這一步中,我們需要先利用 Ninja 編譯工具對 OpenVINO 運行庫進行預編譯,并使用 itt 組件來收集模型運行過程中的依賴數據。可以通過cmake -DENABLE_PROFILING_ITT=ONDSELECTIVE_BUILD=COLLECT ..指令開啟這一功能的編譯。以下是完整命令參考:

git clone https://github.com/openvinotoolkit/openvino.git
set OPENVINO_HOME=D:work_pathopenvino
cd %OPENVINO_HOME%
git submodule update --init --recursive
md build_cc
cd build_cc
cmake -G Ninja -Wno-dev -DCMAKE_BUILD_TYPE=Debug -DENABLE_CPPLINT=OFF -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_COMPILE_WARNING_AS_ERROR=OFF -DENABLE_FASTER_BUILD=ON -DENABLE_SANITIZER=OFF -DTHREADING=TBB -DBUILD_SHARED_LIBS=OFF -DENABLE_PROFILING_ITT=ON -DSELECTIVE_BUILD=COLLECT -DENABLE_INTEL_GPU=OFF -DENABLE_MULTI=OFF -DENABLE_AUTO=OFF -DENABLE_AUTO_BATCH=OFF -DENABLE_HETERO=OFF -DENABLE_TEMPLATE=OFF -DENABLE_OV_ONNX_FRONTEND=OFF -DENABLE_OV_PADDLE_FRONTEND=OFF -DENABLE_OV_PYTORCH_FRONTEND=OFF -DENABLE_OV_JAX_FRONTEND=OFF -DENABLE_OV_TF_FRONTEND=OFF -DCMAKE_INSTALL_PREFIX=install -DENABLE_PYTHON=OFF ..
cmake --build . --config Debug

3. 數據收集

完成預編譯后,我們需要針對特定模型,利用 itt 工具收集 OpenVINO 運行庫在運行指定模型所需的依賴模塊。

cd %OPENVINO_HOME%uild_cc
cmake --build . --config Debug --target sea_itt_lib
cd %OPENVINO_HOME%
set PATH=%PATH%;%OPENVINO_HOME%\temp	bbin
mkdir cc_data
cd %OPENVINO_HOME%cc_data
python3 ..	hirdpartyitt_collector
untoolsea_runtool.py --bindir ..inintel64Debug -o %OPENVINO_HOME%cc_datadata ! ..inintel64Debugenchmark_app.exe -niter 1 -nireq 1 -m  -d NPU

可以看到在以上命令中,我們將 benchmark app 所采集到的模型運行數據保存在 cc_data 目錄下,接下來就需要基于該數據來壓縮 OpenVINO 運行庫的體積。

bfd4ce2c-cf32-11ef-9310-92fbcf53809c.png

OpenVINO 運行依賴數據

4.運行庫編譯

使用cmake -DSELECTIVE_BUILD=ON -DSELECTIVE_BUILD_STAT=%OPENVINO_HOME%cc_data*.cs 指令,我們可以利用上一步所采集的依賴數據,在正式編譯過程中刪除一些不必要的依賴組件或是函數,以達到針對指定模型優化運行庫容量的目的。以下是完整的參考指令:

cd %OPENVINO_HOME%
md build
cd build
cmake -G "Visual Studio 16 2019" -A x64 -DENABLE_CPPLINT=OFF -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_COMPILE_WARNING_AS_ERROR=OFF -DCMAKE_BUILD_TYPE=Release -DENABLE_FASTER_BUILD=ON -DENABLE_PROFILING_ITT=OFF -DSELECTIVE_BUILD=ON -DENABLE_INTEL_GPU=OFF -DENABLE_MULTI=OFF -DENABLE_AUTO=OFF -DENABLE_AUTO_BATCH=OFF -DENABLE_HETERO=OFF -DENABLE_TEMPLATE=OFF -DENABLE_OV_ONNX_FRONTEND=OFF -DENABLE_OV_PADDLE_FRONTEND=OFF -DENABLE_OV_PYTORCH_FRONTEND=OFF -DENABLE_OV_JAX_FRONTEND=OFF -DENABLE_OV_TF_FRONTEND=OFF -DSELECTIVE_BUILD_STAT=%OPENVINO_HOME%cc_data*.csv -DBUILD_SHARED_LIBS=OFF -DENABLE_LTO=ON -DENABLE_ONEDNN_FOR_GPU=OFF -DENABLE_OV_TF_LITE_FRONTEND=OFF -DENABLE_PROFILING_FIRST_INFERENCE=OFF ..
cmake --build . --config Release

這里我們比較開啟條件編譯功能關閉條件編譯功能后,OpenVINO 運行庫的大小。

bff2d37c-cf32-11ef-9310-92fbcf53809c.png

c001d84a-cf32-11ef-9310-92fbcf53809c.png

條件編譯前后對比

可以看到在只編譯 NPU plugin 以及 samples 示例的情況下,OpenVINO 被壓縮了6MB左右的空間,其中 openvino.dll 動態庫為主要壓縮對象。當然針對不同模型的壓縮效果也是不同的,以上數據僅為參考。

c0162dae-cf32-11ef-9310-92fbcf53809c.png

openvino.dll 壓縮效果

5. 小結

使用條件編譯功能可以最大限度壓縮 OpenVINO 運行庫的體積,幫助應用瘦身,從而減少應用軟件在發行時由容量問題帶來的網絡和磁盤壓力。關于 OpenVINO 條件編譯功能更詳細的使用方法可以參考:

https://docs.openvino.ai/2024/openvino-workflow/deployment-locally/optimial-binary-size-conditional-compilation.html

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • WINDOWS
    +關注

    關注

    4

    文章

    3595

    瀏覽量

    90652
  • 編譯
    +關注

    關注

    0

    文章

    674

    瀏覽量

    33506
  • OpenVINO
    +關注

    關注

    0

    文章

    111

    瀏覽量

    377

原文標題:開發者實戰 | 使用 OpenVINO? 條件編譯功能,壓縮 Windows 應用體積

文章出處:【微信號:英特爾物聯網,微信公眾號:英特爾物聯網】歡迎添加關注!文章轉載請注明出處。

收藏 0人收藏

    評論

    相關推薦

    Windows中安裝OpenVINO?后,無法找到OpenCL編譯器二進制文件是怎么回事?

    已在 Windows* 和開源OpenVINO工具套件 Windows* 中安裝 OpenVINO?英特爾 Distribution。 如 如何為 VPU 實施自定義層 (英特爾?
    發表于 03-05 08:57

    請問OpenVINO?工具套件英特爾?Distribution是否與Windows? 10物聯網企業版兼容?

    無法在基于 Windows? 10 物聯網企業版的目標系統上使用 英特爾? Distribution OpenVINO? 2021* 版本推斷模型。
    發表于 03-05 08:32

    Windows上安裝OpenVINO?運行時遇到錯誤怎么解決?

    已在 Windows* 上安裝OpenVINO?運行時。 配置環境變量。 遇到錯誤: Location is not available.
    發表于 03-05 09:13

    Windows? 11上安裝OpenVINO? 2021.4時,安裝程序崩潰了,安裝失敗怎么解決?

    Windows? 11 上安裝OpenVINO? 2021.4 時,安裝程序崩潰了,安裝失敗。
    發表于 03-05 06:50

    為什么無法在OpenVINO? 2021.3源中使用CMAKE編譯ONNX模型?

    嘗試從源版本 2021.3 編譯OpenVINO? 錯誤: ~/項目/OpenVINO/cmake-build-debug/_deps/ext_onnx-src/onnx/onnx_pb.h
    發表于 03-05 08:29

    C語言中條件編譯的妙用

    。例如,我們有一個數據類型,在Windows平臺中,應該使用long類型表示,而在其他平臺應該使用float表示,這樣往往需要對源程序作必要的修改,這就降低了程序的通用性。可以用以下的條件編譯
    發表于 07-19 01:53

    如何正確安裝OpenVINO并將其與所需依賴關系鏈接?

    Windows 10 中安裝OpenVINO 2019.3 在 Windows 路徑中設置:C:\\Program Files (x86)\\Intel
    發表于 08-15 08:29

    永久設置OpenVINO trade Windows reg10的工具套件環境變量

    您可以在 Windows? 10 中手動設置OpenVINO?環境變量。在 Windows? 10 系統中,轉到 >系統和安全>系統>高級系統設置&
    發表于 08-15 07:18

    無法使用Microsoft Visual Studio 2017為Windows 10構建開源OpenVINO怎么解決?

    無法使用 Microsoft Visual Studio 2017 為 Windows 10 構建開源OpenVINO?。
    發表于 08-15 06:43

    PIC系列單片機WINDOWS版反編譯軟件

    PIC系列單片機WINDOWS版反編譯軟件
    發表于 04-14 15:06 ?0次下載

    如何在windows環境下用Sourcery CodeBench編譯基于am3359的u-boot概述

     我們知道在linux下編譯通過的c代碼,如果它使用了自己的API,那么在windows編譯是不能通過的。但是linux的API的功能windo
    發表于 04-24 09:36 ?8次下載
    如何在<b class='flag-5'>windows</b>環境下用Sourcery CodeBench<b class='flag-5'>編譯</b>基于am3359的u-boot概述

    c語言之條件編譯技巧與示例分析

    C語言的條件編譯#if, #elif, #else, #endif、#ifdef, #ifndef 有些程序在調試、兼容性、平臺移植等情況下可能想要通過簡單地設置一些參數就生成一個不同的軟件,這當然
    的頭像 發表于 08-26 15:06 ?2961次閱讀

    C語言中條件編譯詳解

    —般情況下,C語言源程序中的每一行代碼.都要參加編譯。但有時候出于對程序代碼優化的考慮,希望只對其中一部分內容進行編譯。此時就需要在程序中加上條件,讓編譯器只對滿足
    的頭像 發表于 04-14 13:12 ?3279次閱讀

    Windows搭建OpenHarmony編譯環境

    由于OpenHarmony的編譯工具鏈主要是建立在Linux操作系統下,如需要編譯OpenHarony內核則需要搭建虛擬機等工序,相對比較繁瑣。那么,是否可以在Windows操作系統上實現
    的頭像 發表于 08-09 08:26 ?1924次閱讀
    <b class='flag-5'>Windows</b>搭建OpenHarmony<b class='flag-5'>編譯</b>環境

    NNCF壓縮與量化YOLOv8模型與OpenVINO部署測試

    OpenVINO2023版本衍生出了一個新支持工具包NNCF(Neural Network Compression Framework – 神經網絡壓縮框架),通過對OpenVINO IR格式模型的
    的頭像 發表于 11-20 10:46 ?1838次閱讀
    NNCF<b class='flag-5'>壓縮</b>與量化YOLOv8模型與<b class='flag-5'>OpenVINO</b>部署測試
    主站蜘蛛池模板: 牛牛自拍国产免费视频 | 久久99re66热这里只有精品 | 国产高潮久久精品AV无码 | 试看做受120秒免费午夜剧场 | 欧美一区二区视频97色伦 | 国产精品毛片在线视频 | 果冻传媒2021精品在线观看 | 青青久久网 | 日产精品久久久久久久蜜殿 | 亚洲不卡视频在线观看 | 午夜视频体内射.COM.COM | 玩弄放荡人妻一区二区三区 | 国产九九九九九九九A片 | 国产探花在线精品一区二区 | 亚洲熟伦熟女专区 | 日韩精品欧美亚洲高清有无 | 强奸美女老师 | 久99久热只有精品国产99 | 亚洲黄色网页 | 老司机福利在 线影院 | 永久adc视频年龄确认 | 久久人人爽人人片AV人成 | 古代荡女丫鬟高H辣文纯肉 姑娘视频日本在线播放 | 做你的爱人BD日本 | 浪潮色诱AV久久久久久久 | 免费乱理伦片在线观看夜 | 亚洲国产亚综合在线区尤物 | 暖暖视频免费观看高清完整版 | 久久久精品国产免费A片胖妇女 | 一品道门免费视频韩国 | 亚洲AV无码一区二区色情蜜芽 | 国产精品一区二区AV97 | 我的美女奴隶 | 色婷婷国产精品视频一区二区 | 雪恋电影完整版免费观看 | 九九热久久只有精品2 | 稚嫩挤奶h调教h | 黄色一级毛片免费 | 伊人久久大香线蕉综合影 | 亚洲欧洲日产国码久在线 | 色拍拍噜噜噜啦啦新网站 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品