markdown BM1682开发要点
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown BM1682开发要点相关的知识,希望对你有一定的参考价值。
1. bm1682 memcpy(malloc只是申请内存,并没有分配初始化(初始化时会产生很多中断),可cache内存已经初始化,否则加2ms) 4ms拷贝6MB数据(1.5MB/ms对比GPU:5.5MB/ms)
2. 1ms = 1.5-1.7M指令周期(单核)
3. exp相当于100指令周期,1ms执行10000次
4. 将耗时大的模型作为一个线程(resize和yolov3)最好时间达到cpu和NPU五五开,其他模型做成服务,保证最大并行度
5. bmodel要注意cpu_layer时间,当cpu_layer运行时,会锁死NPU,也会占用CPU,所以可以考虑将cpu_layer自己用CPU实现,保证并行度
6. vpp分opencv vpp和native vpp,最大的区别在于内存管理,opencv mat频繁开辟释放会影响性能,因为不知道内存是否已经初始化
7. 保存数据按照NCHW排放就行,做inference时会进行一个copy(不管虚拟地址连续还是物理地址连续)
8. 建议使用BMRuntime接口,将硬解码出来的Mat.data直接赋值给Blob(void* data, shape_t& shape, uint32_t fmt = FMT_F32)
9. ION内存查看cat /sys/kernel/debug/ion/bm_carveout_heap_dump
以上是关于markdown BM1682开发要点的主要内容,如果未能解决你的问题,请参考以下文章
markdown BM1682 SDK2.0操作
markdown BM1682测试hz_object功能模块耗时
text BM1682支持来自Caffe算子
markdown 公共要点 - 图灵 - 完成装备要点的项目汇编
markdown 创造一个测试要点
markdown 我的autohotkey要点