本文将介绍在Jeston Tx2上部署Tengine-lite模型的方法 以及这几天来踩的坑。
采用CUDA部署的方法而非openCL
内容简洁有效
Tengine 由 OPEN AI LAB 主导开发,该项目实现了深度学习神经网络模型在嵌入式设备上的快速、高效部署需求。为实现在众多 AIoT 应用中的跨平台部署,本项目基于原有 Tengine 项目使用 C 语言进行重构,针对嵌入式设备资源有限的特点进行了深度框架裁剪。同时采用了完全分离的前后端设计,有利于 CPU、GPU、NPU 等异构计算单元的快速移植和部署,同时降低评估和迁移成本。
删除默认的cmake
sudo apt remove cmake
sudo apt purge --auto-remove cmake
从官网下载所需版本,解压,创建build文件夹
version=3.20
build=3
mkdir ~/temp
cd ~/temp
wget https://cmake.org/files/v$version/cmake-$version.$build.tar.gz
tar -xzvf cmake-$version.$build.tar.gz
cd cmake-$version.$build/
编译安装
./bootstrap
make -j4
sudo make install
移动路径
sudo cp ./bin/cmake /usr/bin/
验证
cmake --version
$ export CUDACXX=/usr/local/cuda/bin/nvcc
$ git clone https://github.com/OAID/Tengine.git tengine-lite #也可以自己下载通过邮箱发到Tx2上
$ cd <tengine-lite-root-dir>
$ mkdir -p build-linux-cuda && cd build-linux-cuda
$ cmake -DTENGINE_ENABLE_CUDA=ON .. #(可能会出现问题 [1])
$ make -j4 #(建议使用sudo)(可能出现问题[2])
$ make install #(建议使用sudo)
解决方案就是把tengine-lite下的所有文件都复制到home下,等指令运行结束后再删掉就好
解决方案就是在CMakelist.txt里面添加
project(CUDA_MAT_MUL LANGUAGES CXX CUDA)
参考文章
https://zhuanlan.zhihu.com/p/105721133
https://github.com/OAID/Tengine
https://tengine.readthedocs.io/zh_CN/latest/source_compile/compile_cuda.html#setup-nvcc-enva
加油吧