【經驗分享】win10 cmake 構建 Tengine 工程

極智視界發表於2021-12-10

歡迎關注我的公眾號 [極智視界],回覆001獲取Google程式設計規範

O_o>_<   o_OO_o~_~o_O

  本教程詳細記錄了在 win10 環境中使用 cmake 快速構建 Tengine vs 工程的方法。

   前面寫過一篇《【經驗分享】win10 qmake 構建 ncnn vs 工程》,介紹了在 win10 上使用 nmake 和 qmake 構建 ncnn vs 工程的方法,這裡用 cmake 來走一遍 Tengine vs 工程的構建。大家知道,ncnn 和 Tengine 都是低算力場景十分受歡迎的深度學習推理框架,而 cmake 應該是開源專案中使用最多的跨平臺編譯工具,qmake 則小眾一些。把這幾篇文章結合起來,你會發現,當你左手一個 ncnn、右手一個 Tengine,左手一個 cmake、右手一個 qmake 時,不管你面對的環境是 windows 還是 linux,不管你部署的目標平臺是嵌入式板子還是手機移動端,都能遊刃有餘。

  Come on。

1、準備 Tengine 原始碼

     直接 clone Tengine 的工程程式碼就行:

git clone https://github.com/OAID/Tengine.git

  工程專案結構清晰,像 benchmark、examples、tests 這些就不用多說了,一看就知道拿來幹嘛的。說一下 tools,可以看到 tools 裡提供了一些實用的工具,以前這些工具如模型轉換工具 convert_tool 是單獨的 git 專案,現在都揉到 Tengine 工程裡來了,使用起來會更加友好一些。剛才說了 convert_tool 是模型轉換工具,還有如 optimize 是模型優化工具,quantize 是模型量化工具,目前提供了四種量化演算法:min-max、kl、eq、dfq,量化模式有對稱量化、非對稱量化、逐通道量化,覆蓋的場景還是很全面的,點個贊。

     

2、準備 cmake bat

  先提一句,用 vs studio 2019,記住。

  整理三個 bat:

  • env.bat:用於環境配置;
  • vs_create_project.bat:建立 vs 工程;
  • run_project.bat:執行 vs 工程;

  來看一下三個 bat 的具體內容。

  env.bat:

SET WATCH_VC_DIR=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build

   vs_create_project.bat:

@echo off

call :prepare_env
call :build_vs

goto :EOF
:prepare_env

echo "call env.bat if exist"
if exist env.bat (call env.bat)

goto :EOF

:build_vs

if defined WATCH_VC_DIR  (
    echo "has WATCH_VC_DIR in env.bat"
)  else  (
    echo "please set the 1 env variables: WATCH_VC_DIR in env.bat, and retry again."
    pause
    exit
)

call "%WATCH_VC_DIR%\vcvarsall.bat" x64

if exist build (echo "build folder exist.") else (md build)
cd build

cmake -G "Visual Studio 16 2019" -A x64 ..
cd ../

pause
exit

  run_project.bat:

set SLN=.\build\tengine-lite.sln

set VC_DIR=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build
call "%VC_DIR%\vcvars64.bat" x64

set OPENCV_PATH=.\third_party\opencv\x64\vc15\bin

SET "PATH=%OPENCV_PATH%;%PATH%"

start devenv.exe %SLN%

3、構建 Tengine 工程

   把上面提到的三個 bat 放到 <Tengine_path> 目錄下,由於已經做好了上面的準備工作,我們們接下來構建 Tengine 工程的過程會變得十分輕鬆。

  看一下其實剛拿到手的 CmakeList.txt 裡有挺多模組的構建都是預設關閉的,如果你想編譯某些模組,可以把對應的開關開啟,就像我這裡開啟了 CONVERT_TOOL、QUANT_TOOL 模組一樣,如下:

   然後開始愉快的編譯,撥動滑鼠雙擊就行,執行順序:env.bat -> vs_create_project.bat -> run_project.bat,完了就自動開啟了 vs2019 工程,就像這樣:

     

   然後執行編譯:

   為了證明我不是在胡說,我來跑一下 bentchmark:

   以上分享了 win10 環境下用 cmake 來構建 Tengine 工程的方法,希望我的分享能對你的學習有一點幫助。


【公眾號傳送】
【經驗分享】win10 cmake 構建 Tengine 工程

相關文章