【OpenVINO】特定模型的條件編譯
目錄
本文引用地址:http://2s4d.com/article/202106/426448.htmIntroduction
Building for different models
Building for devices with different ISA
簡(jiǎn)介
條件編譯通過(guò)排除特定模型推理中不必要的組件,可以顯著減少OpenVINO?二進(jìn)制文件的大小。
可以從內(nèi)部版本中排除以下組件:
1.nGraph和插件中的圖層和圖形轉(zhuǎn)換
2.nGraph 操作
3.CPU插件中的jit內(nèi)核
4.不用于特定模型推理的任意代碼
然而,條件編譯有一個(gè)很大的缺點(diǎn)- 由此產(chǎn)生的OpenVINO運(yùn)行時(shí)只能與有限的一組模型和設(shè)備一起工作。
要利用條件編譯,請(qǐng)安裝以下工具:
Python
為不同的模型構(gòu)建
條件編譯分為兩個(gè)階段:
收集有關(guān)代碼使用情況的信息
在沒(méi)有未使用的組件或部件的情況下構(gòu)建結(jié)果二進(jìn)制文件
要應(yīng)用條件編譯,請(qǐng)按照以下步驟:
1.執(zhí)行代碼使用分析:
i.使用以下選項(xiàng)運(yùn)行CMake工具:-DENABLE_PROFILING_ITT=ON-DSELECTIVE_BUILD=COLLECT。
ii.選擇要在特定應(yīng)用程序或目標(biāo)設(shè)備中使用的多個(gè)型號(hào)。
iii.使用SEA_ITT_lib目標(biāo)構(gòu)建ITT收集器。
iv.在ITT收集器下運(yùn)行目標(biāo)應(yīng)用程序,以分析每個(gè)模型的代碼使用情況。統(tǒng)計(jì)數(shù)據(jù)以.csv格式生成。
2.構(gòu)建生成的二進(jìn)制文件:
i.執(zhí)行以下選項(xiàng)的CMake工具: -DSELECTIVE_BUILD=ON -DSELECTIVE_BUILD_STAT=${ABSOLUTE_PATH_TO_STATISTICS_FILES}/*.csv
ii.cmake –build <cmake_build_directory>
強(qiáng)烈建議對(duì)Benchmark_app使用“-niter 1-nireq 1”標(biāo)志。否則,跟蹤文件將非常大。
如果您使用的應(yīng)用程序不是Benchmark_APP,請(qǐng)記住限制推理請(qǐng)求和迭代的數(shù)量。
為具有不同ISA的設(shè)備構(gòu)建
構(gòu)建具有不同 ISA 的設(shè)備與構(gòu)建不同型號(hào)的設(shè)備非常相似(參見(jiàn)前一章)。區(qū)別僅在于代碼使用分析步驟。應(yīng)該在目標(biāo)設(shè)備上執(zhí)行分析步驟,并且應(yīng)該將包含統(tǒng)計(jì)信息的所有 CSV 文件復(fù)制到構(gòu)建計(jì)算機(jī)上。這些文件將用于最終的生成。
限制
?目前,Ninja build 系統(tǒng)不支持條件編譯 build。
? 版權(quán)方 2018-2021, OpenVINO 團(tuán)隊(duì)
評(píng)論