歡迎關注我的公眾號 [極智視界],回覆001獲取Google程式設計規範
O_o
>_<
o_O
O_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 工程》