跳转至

ncnn支持

简介

本威力加强包由合作伙伴 腾讯 nihui 提供(https://github.com/Tencent/ncnn

ncnn 是腾讯开源的神经网络推理框架

  • 支持深度学习模型 caffe/mxnet/keras/pytorch(onnx)/darknet/tensorflow(mlir)
  • 跨平台:Windows/Linux/MacOS/Android/iOS/WebAssembly/...
  • 兼容多种 CPU 架构:RISC-V/x86/arm/mips/...
  • 支持 GPU 加速:NVIDIA/AMD/Intel/Apple/ARM-Mali/Adreno/...
  • 支持各种常见的模型结构,比如 mobilenet/shufflenet/resnet/LSTM/SSD/yolo...
  • 很强,qq群请移驾 ncnn github 首页README

image-20210517164350502

使用方法

准备交叉编译工具链

去平头哥芯片开放社区下载 工具链-900 系列:

https://occ.t-head.cn/community/download?id=3913221581316624384

比如 riscv64-linux-x86_64-20210512.tar.gz,下载后解压缩,设置环境变量

tar -xf riscv64-linux-x86_64-20210512.tar.gz
export RISCV_ROOT_PATH=/home/nihui/osd/riscv64-linux-x86_64-20210512

下载和编译ncnn

为 d1 架构交叉编译 ncnn

因为编译器 bug,release 编译会导致运行时非法指令错误,必须使用 relwithdebinfo 编译哦

git clone https://github.com/Tencent/ncnn.git
cd ncnn
mkdir build-c906
cd build-c906
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/c906.toolchain.cmake -DCMAKE_BUILD_TYPE=relwithdebinfo -DNCNN_BUILD_TESTS=ON -DNCNN_OPENMP=OFF -DNCNN_THREADS=OFF -DNCNN_RUNTIME_CPU=OFF -DNCNN_RVV=ON ..
make -j32

测试benchncnn

d1 默认的 TinaLinux 执行 ncnn 程序时会发生非法指令错误,必须使用 Debian 系统哦

将 ncnn/build-c906/benchmark/benchncnn 和 ncnn/benchmark/*.param 拷贝到 d1开发板上

./benchncnn 4 1 0 -1 0

更多

原文链接及后续更新见: https://gist.github.com/nihui/ff7bfb3e48bb850a9d7bd495c0a6d373

知乎进展更新见: https://zhuanlan.zhihu.com/p/386312071?utm_source=qq&utm_medium=social&utm_oi=872955404320141312