Skip to content

Instantly share code, notes, and snippets.

@nihui

nihui/d1-ncnn.md Secret

Last active Oct 10, 2021
Embed
What would you like to do?

简介

https://github.com/Tencent/ncnn

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

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

准备交叉编译工具链

去平头哥芯片开放社区下载 工具链-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_OPENMP=OFF -DNCNN_THREADS=OFF -DNCNN_RUNTIME_CPU=OFF -DNCNN_RVV=ON -DNCNN_SIMPLEOCV=ON -DNCNN_BUILD_EXAMPLES=ON ..
make -j32

测试benchncnn

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

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

./benchncnn 4 1 0 -1 0

测试example

ncnn/build-c906/examples/nanodet 和测试图片拷贝到 d1开发板上

从这里下载 nanodet 模型文件并拷贝到 d1开发板上

https://github.com/nihui/ncnn-assets/tree/master/models

./nanodet test.jpg

输出检测结果信息,并保存在 image.png

0 = 0.82324 at 200.04 44.89 198.96 x 253.33
0 = 0.78271 at 32.98 63.45 178.15 x 232.92
56 = 0.45923 at 1.46 71.92 90.14 x 117.85
imshow save image to image.png
waitKey stub
@CSY-tvgo

This comment has been minimized.

Copy link

@CSY-tvgo CSY-tvgo commented Oct 10, 2021

Hi,请问可以把 d1 默认的 TinaLinux 执行 ncnn 程序时会发生非法指令错误,必须使用 Debian 系统哦 这句话移到文章的前边吗?走到倒数第二步才发现要重装系统的话,看起来有点怪

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment