完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
目前正在做ARMv7 系列芯片算法的NEON优化,发现一个耗时异常的地方,现象描述如下: 首先主循环里会处理三类数据,三类数据分开存放在DDR上,每次循环分别处理三类数据的8个uchar数据,存储数据也是分三类数据地址分开存放,我分别定义三个uint8*8的变量用来暂时存储处理的结果,在使用vst1_u8从寄存器存储数据到DDR的时候,只要我存储处理过后的三路数据中的一路,耗时就会增加到59ms,这时候不管是否存储另外两路数据,耗时都是59ms。如果我从DDR直接加载数据,给该变量赋值,不处理直接写到DDR,统计总循环的耗时会降低20ms,同样的我存储其他变量的数据到DDR耗时也会下降20ms,只要一存储处理过后的数据中的一路,总循环耗时就突增到59ms,想不明白,都是从d寄存器或者q寄存器写数据到DDR,为什么耗时会差这么多,只要存储处理过的数据耗时就上升到59ms。该算法原来的耗时是180ms,现在优化到59ms,想弄清楚耗时增长的原因?是否有别的优化方法进一步降低耗时?(注:由于该算法的特性,算法中使用寄存器数量已经超过的ARMv7 NEON中的寄存器数量。) |
|
相关推荐
1个回答
|
|
因为处理会耗时,当然会比直接存储时间多,计算时间增加了
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
【米尔-国产瑞芯微RK3568开发板试用体验】评测一 系统配置
693 浏览 0 评论
1198 浏览 0 评论
2057 浏览 1 评论
如何配置Linux操作系统设备树让我的开发板可以将板子上的GPIO接口用作 I2S输出??
2432 浏览 1 评论
1645 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-28 21:25 , Processed in 0.449408 second(s), Total 44, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191