MNN是一个非常实用的深度学习推理框架,今天在华为笔记本ubuntu18.04上进行MNN的交叉编译,并在nvidia jeston进行部署(没有其他扳子可以用)
1、硬件配置
jeston的配置如下:
2、环境配置
(1) MNN选择master版本(1.2.0tag版本有错误)
(2)下载linaro交叉编译环境, 我的是aarch64,Linaro Releaseshttps://releases.linaro.org/components/toolchain/binaries/7.4-2019.02/aarch64-linux-gnu/选择7.4版本
(3)编译MNN,在MNN目录下,注意编译器选的路径位置
mkdir build && cd build
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DMNN_BUILD_DEMO=ON \
-DMNN_BUILD_BENCHMARK=true \
-DMNN_BUILD_CONVERTER=true \
-DMNN_BUILD_QUANTOOLS=true \
-DMNN_USE_INT8_FAST=true \
-DMNN_BUILD_TEST=true\
-DMNN_OPENCL=ON \
-DCMAKE_SYSTEM_NAME=Linux \
-DCMAKE_SYSTEM_VERSION=1 \
-DCMAKE_SYSTEM_PROCESSOR=aarch64 \
-DCMAKE_INSTALL_PREFIX=/gzy_mnt/MNN_OPENCL_INSTALL \
-DCMAKE_C_COMPILER=/home/gzy/Test/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc \
-DCMAKE_CXX_COMPILER=/home/gzy/Test/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++
make -j8
直接在x86编译平台进行编译
mkdir build && cd build
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DMNN_BUILD_DEMO=ON \
-DMNN_BUILD_BENCHMARK=true \
-DMNN_BUILD_CONVERTER=true \
-DMNN_BUILD_QUANTOOLS=true \
-DCMAKE_INSTALL_PREFIX=/gzy_mnt/MNN_OPENCL_INSTALL \
make -j8
(4)编译完成和清理
将build目录下的benchmark.out、工程目录下bencmark/models文件夹(全是mnn模型库)、建立lib文件夹(放libMNN_Express.so、libMNN.so)拷贝到扳子上,目录如下:
或者进行下面操作
make install
将会把编译结果放在结果中
3、测试
将lib添加道系统库路径下:
vim ~/.bashrc
添加
进入目录进行测试
benchmark.out models_folder [loop_count] [warmup] [forwardtype] [numberThread] [precision]
./benchmark.out ./models 100 10 0
输出结果为: