这是一个记录移动端(arm)性能优化学习过程的库,分为两个部分
- 推理引擎:
- 算子开发&优化:DepthwiseConv3x3优化(完成)、relu、全连接层。
- 线程池:SimpleThreadPool 用于每一层算子的数据分块
- 模型转换、图优化:todo
- 数据排布转换(e.g. NC4HW4):todo
- 测试框架:采用MNN的测试框架。测试策略为:1)进行一定次数的warm up;2)循环一定次数后挂起一段时间后,再继续执行
小目标:能够推理简单的DepthwiseConv MNIST模型,耗时至少与ncnn持平。
- 图像算子:
- bgr2gray优化(完成)
- boxFilter(完成)
- integral(完成)
- max_filter (进行中)
- 安装ndk 21.4.7075529,并放在
${HOME}/Library/Android/sdk/ndk/21.4.7075529
中;或按照自己的喜好修改build_android.sh
- opencv: thirdparty中已有预编译好的mac m1 下的opencv库,如果是其他平台,需要自己编译,并放在thirdpary中。
- 一台arm芯片安卓手机
./build_android.sh
./run_android_test.sh