得益于四核A55的性能,NCNN跑起來應該問題不大,本文主要介紹NCNN在Core3566 模組上的部署和測試。
一、NCNN介紹
ncnn 是一個為手機端極致優(yōu)化的高性能神經(jīng)網(wǎng)絡前向計算框架。 ncnn 從設計之初深刻考慮手機端的部署和使用。 無第三方依賴,跨平臺,手機端 cpu 的速度快于目前所有已知的開源框架。 基于 ncnn,開發(fā)者能夠?qū)?a href="http://www.nxhydt.com/v/tag/448/" target="_blank">深度學習算法輕松移植到手機端高效執(zhí)行, 開發(fā)出人工智能 APP,將 AI 帶到你的指尖。 ncnn 目前已在騰訊多款應用中使用,如:QQ,Qzone,微信,天天 P 圖等。
ncnn: NCNN是騰訊優(yōu)圖實驗室首個開源項目,是一個為手機端極致優(yōu)化的高性能神經(jīng)網(wǎng)絡前向計算框架。
二、源碼下載&編譯
(一)源碼下載
在NCNN的github(github.com/Tencent/ncnn)拉源碼。
linaro@linaro-alip:/userdata$ sudo git clone https://github.com/Tencent/ncnn.git
Cloning into 'ncnn'...
remote: Enumerating objects: 32651, done.
remote: Counting objects: 100% (5798/5798), done.
remote: Compressing objects: 100% (309/309), done.
remote: Total 32651 (delta 5637), reused 5500 (delta 5489), pack-reused 26853
Receiving objects: 100% (32651/32651), 22.79 MiB | 8.51 MiB/s, done.
Resolving deltas: 100% (27724/27724), done.
Checking out files: 100% (3285/3285), done.
linaro@linaro-alip:/userdata$
(二)源碼編譯
考慮到四核A55的能力,加上NCNN本身也支持板上直接編譯,所以就不去PC上搞交叉編譯了。
Debian包自帶gcc,所以就不需要在Core3566 模組編譯安裝了,頂多更新下。
linaro@linaro-alip:/userdata$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/8/lto-wrapper
Target: aarch64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 8.3.0-6' --with-bugurl=file:///usr/share/doc/gcc-8/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-8 --program-prefix=aarch64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --disable-libphobos --enable-multiarch --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=aarch64-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu
Thread model: posix
gcc version 8.3.0 (Debian 8.3.0-6)
按照下面步驟的順序:
cd < ncnn-root-dir >
mkdir -pbuild-aarch64-linux-gnu
cdbuild-aarch64-linux-gnu
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/aarch64-linux-gnu.toolchain.cmake ..
make -j$(nproc)
操作及l(fā)og如下:
可以看出編譯還是很耗資源。
最終生成了可執(zhí)行程序。
linaro@linaro-alip:/userdata/ncnn/build-aarch64-linux-gnu$ file benchmark/benchncnn
benchmark/benchncnn: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=16473ecd5c28b183841b2925c3d87c7cd23a060e, not stripped
linaro@linaro-alip:/userdata/ncnn/build-aarch64-linux-gnu$
三、測試
將生成的可執(zhí)行文件拷貝到原目錄的benchmark/文件夾中,因為這里面有測試需要的模型數(shù)據(jù)。
執(zhí)行一下,幾個模型測試都跑個遍:
得分數(shù)據(jù)還是比較能反映RK3566的實力,基本上每項都是H616得分的2倍。貼個H616的測試分數(shù),對比下。
-
AI
+關(guān)注
關(guān)注
87文章
28877瀏覽量
266239 -
人工智能
+關(guān)注
關(guān)注
1787文章
46061瀏覽量
235030 -
源碼
+關(guān)注
關(guān)注
8文章
626瀏覽量
28973 -
模組
+關(guān)注
關(guān)注
6文章
1361瀏覽量
29951
發(fā)布評論請先 登錄
相關(guān)推薦
評論