打印

关于6713的浮点和定点的运算量的实验

[复制链接]
2605|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
engrecho|  楼主 | 2013-4-5 15:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天写了一段代码考察了一下在6713中的浮点型和定点型的数据类型的运算时间。
代码如下
#include

float DataIn[5000];
short n;
Uint32 DataOut[5000];
void main()
{
   SYSTEM_INIT();
   for (n=0;n<5000;n++)
  {
DataIn[n]=(float) n;
DataIn[n]=DataIn[n]*DataIn[n];
}
for (n=0;n<5000;n++)
{
DataOut[n]=n;
DataOut[n]=DataOut[n]*DataOut[n];
}
}
最后经过,profiler 运行时间测量,测量出来 前部分代码,即float型数据,需要257,536个时钟周期,而int型却要需要267536个时钟周期,这个让我感觉有点茫然。
目前还不是特别清楚为什么会出现这种情况,最近刚刚开始学习DSP,还望高人指点。

相关帖子

沙发
chess2006| | 2013-4-5 18:20 | 只看该作者
本帖最后由 chess2006 于 2013-4-6 16:30 编辑

问题一:数据输入输出存在不确定的相关性;问题二:算法的并行性太差;问题三:需要循环展开;问题四:原始数据的存储位置未指定;问题五:未使用dma配合corepac计算;问题六:数据存在严重冗余,不必写回内存的变量保持寄存器属性;问题七:使用intrinsic优化单周期多乘法;问题八:数据地址未指定对齐边界;问题九:循环变量的数据类型严重错误,编译器放弃优化;问题十:不超过14个迭代周期的算法不必分循环执行。结论:作为DSP算法工程师需要严格培训,这样放羊下去是严重的“子不学、师之惰”,误人子弟嘛。
实在看不下去了,坛里谁要是真正想学DSP,C64x+或C66最新架构的凑个班我给你们上上课算了,这样毕业出校门哪家公司敢雇啊,汗流浃背中~~~~~~~~~~

使用特权

评论回复
板凳
aresc| | 2013-4-7 11:26 | 只看该作者
按测试结果,实际上那个整型的运算DSP还是当成float的运算的,只不过小数部分为0,好比100 -> 100.0.

使用特权

评论回复
地板
engrecho|  楼主 | 2013-4-7 15:24 | 只看该作者
关于网上的一个观点,目前还不是很确定是不是这个样子,还没有精读Ti的手册,大家参考讨论一下:由于浮点 DSP 的浮点运算用硬件来实现,可以在单周期内完成,因而其处理速度大大高于定点 DSP。这一优点在实现高精度复杂算法时尤为突出,为复杂算法的实时处理提供了保证。

使用特权

评论回复
5
zhangmangui| | 2013-4-8 09:13 | 只看该作者
chess2006 发表于 2013-4-5 18:20
问题一:数据输入输出存在不确定的相关性;问题二:算法的并行性太差;问题三:需要循环展开;问题四:原始 ...

老师  说的是真的  如果您愿意  就给我们培训吧  
DSP技术论坛还望您的多多关照  

使用特权

评论回复
6
hczsea| | 2013-4-10 10:11 | 只看该作者
报个名先,啥时开班

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

39

帖子

1

粉丝