得益于四核A55的性能,NCNN跑起來(lái)應(yīng)該問(wèn)題不大,本文主要介紹NCNN在Core3566 模組上的部署和測(cè)試。
一、NCNN介紹
ncnn 是一個(gè)為手機(jī)端極致優(yōu)化的高性能神經(jīng)網(wǎng)絡(luò)前向計(jì)算框架。 ncnn 從設(shè)計(jì)之初深刻考慮手機(jī)端的部署和使用。 無(wú)第三方依賴,跨平臺(tái),手機(jī)端 cpu 的速度快于目前所有已知的開(kāi)源框架。 基于 ncnn,開(kāi)發(fā)者能夠?qū)?a href="http://ttokpm.com/v/tag/448/" target="_blank">深度學(xué)習(xí)算法輕松移植到手機(jī)端高效執(zhí)行, 開(kāi)發(fā)出人工智能 APP,將 AI 帶到你的指尖。 ncnn 目前已在騰訊多款應(yīng)用中使用,如:QQ,Qzone,微信,天天 P 圖等。
ncnn: NCNN是騰訊優(yōu)圖實(shí)驗(yàn)室首個(gè)開(kāi)源項(xiàng)目,是一個(gè)為手機(jī)端極致優(yōu)化的高性能神經(jīng)網(wǎng)絡(luò)前向計(jì)算框架。
二、源碼下載&編譯
(一)源碼下載
在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$
三、測(cè)試
將生成的可執(zhí)行文件拷貝到原目錄的benchmark/文件夾中,因?yàn)檫@里面有測(cè)試需要的模型數(shù)據(jù)。
執(zhí)行一下,幾個(gè)模型測(cè)試都跑個(gè)遍:
得分?jǐn)?shù)據(jù)還是比較能反映RK3566的實(shí)力,基本上每項(xiàng)都是H616得分的2倍。貼個(gè)H616的測(cè)試分?jǐn)?shù),對(duì)比下。
-
AI
+關(guān)注
關(guān)注
87文章
29806瀏覽量
268103 -
人工智能
+關(guān)注
關(guān)注
1789文章
46652瀏覽量
237073 -
源碼
+關(guān)注
關(guān)注
8文章
632瀏覽量
29110 -
模組
+關(guān)注
關(guān)注
6文章
1411瀏覽量
30227
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論