
背景
为了验证不同的前向框架在手机上的速度,Gemfield最近使用ncnn在Android手机上进行了测试。一般来说,模型的推理速度除了网络自身结构和量化之外,就严重依赖手机上的推理框架的性能了。推理框架之所以能展现出不同的性能,主要有这几方面的原因:内部精简精度(也是量化了)、使用特定指令集、使用多线程(如OPENMP)、使用新算法、框架的设计结构等。不过这些方面改进的空间都不大了,所以在没有新硬件的情况下,相比于一个流行的推理框架,另一个推理框架从软件层面所带来的性能提升不会超过2倍。
另外,在gemfield使用ncnn之前,ncnn对upsample的支持还是有些问题的;不过由gemfield create的相关PR已经被ncnn merge了,情况就变得好多了。
编译及安装
1,编译
切换到ncnn项目目录下,执行下面的命令进行编译:
mkdir -p build-android-aarch64
cd build-android-aarch64
#设置NDK,by civilnet
export ANDROID_NDK=/home/gemfield/android-ndk-r18b
cmake -DCMAKE_TOOLCHAIN_FILE&