1. 程式人生 > 其它 >從OpenVINO Github原始碼編譯release 2021.2(ubuntu18.04 LTS)

從OpenVINO Github原始碼編譯release 2021.2(ubuntu18.04 LTS)

技術標籤:程式設計技巧開源專案

前言:

最近由於工作中遇到的問題,需要自己編譯OpenVINO的原始碼,以下為本次的編譯記錄,總體還是比較順利的。

1. 上github拉取對應的分支:

git clone -b releases/2021/2 https://github.com/openvinotoolkit/openvino.git

有哪些分支可以在github上檢視到,本次我要編譯的版本是最新的2021.2,所以拉取的是這個版本。

2. 拉取完畢,便可以參考官方的文件進行編譯:

https://github.com/openvinotoolkit/openvino/wiki

比如我是在Ubuntu18.04上編譯的,對應的文件連結是:

https://github.com/openvinotoolkit/openvino/wiki/BuildingForLinux

3. 正式開始編譯:

第一步,clone子模組:

cd openvino
git submodule update --init –recursive

從執行的日誌看,是下載Openvino依賴的第三方子模組,比如mkl-dnn, gflags, gtest等



第二步,安裝編譯的依賴

     chmod +x install_build_dependencies.sh
     ./install_build_dependencies.sh
    等待指令碼執行完成,最終會顯示如下字樣,因為我以前就安裝過相關的依賴,所以顯示沒有需要更新的庫。


第三步,確定是否需要編譯對Intel整合顯示的支援。

OpenVINO支援用Intel的整合顯示作推理,在文件裡提到的”GPU”就是特指的整合顯示卡。如果希望支援集顯,就需要安裝OpenCL driver,對應的下載和安裝連結見:https://github.com/intel/compute-runtime/releases/tag/19.41.14441。如果不需要支援集顯,那麼要注意後面在用cmake生成makefile時要指定:-DENABLE_CLDNN=OFF否則會編譯出錯。我需要用到集顯,所以就安裝了OpenCL driver.


第四步,確定是否需要開啟其它非預設的編譯選項

雖然官方把這一步放在了編譯命令的後頭,但我覺得應該一開始就決定好,比如為了方便除錯我會開啟:-DNGRAPH_DEBUG_ENABLE=ON


第五步,確定是否需要編譯python的wrapper

如果想使用python,那麼需要把-DENABLE_PYTHON=ON的編譯選項給指定上。這裡我把python的支援給打開了,加上的編譯選項如下:

-DENABLE_PYTHON=ON \
-DPYTHON_EXECUTABLE=/usr/bin/python3.6 \
-DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.6m.so \
-DPYTHON_INCLUDE_DIR=/usr/include/python3.6


第六步,生成makefile,完整的命令如下:

mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DNGRAPH_DEBUG_ENABLE=ON \
-DENABLE_PYTHON=ON \
-DPYTHON_EXECUTABLE=/usr/bin/python3.6 \
-DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.6m.so \
-DPYTHON_INCLUDE_DIR=/usr/include/python3.6 ..一切順利的話可以看到下面的的日誌:

第七步,開始編譯

make --jobs=$(nproc --all)

大概二十分鐘左右就編完了,能看到如下的日誌:

第八步,簡單驗證我們的編譯成果:

通過OpenVINO自帶的sample進行簡單的驗證:cmake --install . --prefix ~/Workspace/ov_install

這裡我成功安裝了,但後面的步驟也沒有去試,等試過了再更新。

小結:

得益於良好而規範的文件,整個編譯過程比較順利,大概花了半天時間就搞定了。

唯一需要注意的是:編譯python時,由於文件裡給出的是python3.7的配置,我是3.6,這裡費了一些功夫。