JeremyJ · 2021年12月10日

【经验分享】win10 cmake 构建 Tengine 工程

欢迎关注我的公众号 [极智视界]

  本教程详细记录了在 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:

bentchmark.gif

   以上分享了 win10 环境下用 cmake 来构建 Tengine 工程的方法,希望我的分享能对你的学习有一点帮助。

推荐阅读
关注数
5
内容数
25
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息