欢迎关注我的公众号 [极智视界]
本教程详细记录了在 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 工程的方法,希望我的分享能对你的学习有一点帮助。