TI 大牛们,工程师们好,
我们现在在DM8148EVM上做基于adboost算法的人脸检测程序,目前发现处理速度相当慢,耗时10秒,才能处理一张200*200的图片。我们认为,这个速度显然不合理。我想知道,我们的优化是不是没有做好。
- 主要是尽可能使用intrinsic函数,其实也没有几个可以用的;
- 把opt_level 调到了3, optimization for code size 设置为0, optimize for speed 设置为5;
- 各种#pragma设置,如MUST_ITERATE, PROB_ITERATE, FUNC_ALWAYS_INLINE;
- 很多buffer基本都开在DDR上,因为L2RAM 太小了。
问题如下:
- 我们用profile clock测试,发现执行一个c= _mpy(a, b)都得40几个cycles,我们换成 c = a * b;同样也需要好几十个cycles。这是什么原因呢?
- 我们现在DSP 工程师不带操作系统,用的是seed-xds560v2仿真器,请问主频是20M还是750M呢?怎么看当前DSP工作频率?
- 麻烦您纠正下我们的优化错误。
Chris Meng:
你好,
请问你使用的人脸检测算法是基于缩图的,还是基于缩小搜索框的? 都有分别尝试么?
DSP的cache你是如何使用的?
DSP优化有培训的资料,不知道你是有参考过:http://processors.wiki.ti.com/index.php/TMS320C6000_DSP_Optimization_Workshop
Chris Meng:
回复 Chris Meng:
你好,
在CCS下,你使用gel来初始化DSP的,gel里面应该有配置DSP的频率。
测试C674x的运行时间,建议使用Time Stamp Counter Registers (TSCL and TSCH)。
pei qin:
回复 Chris Meng:
Hi Chris Meng,
我们的算法是基于缩图的。请问基于缩小框图,怎么做呢?
TMS320C6000+ DSP Optimization Workshop 文档没能打开,报错如下:
Internal Server Error – Read
谢谢!
pei qin:
回复 Chris Meng:
你好,Chris Meng
DSP cache的使用:就是把全部的L1P/L1D设置为cache。通过查看L1PCFG寄存器。目前就是不知道L1P memory 两个regions的大小在哪里设置的,region 1的大小影响L1 cache.
设置完之后,就没有做其他方面的操作了。请问是不是还有其他的使用技巧呢?
谢谢!
pei qin