对C6748的浮点计算能力与F28335的浮点运算能力进行了测试对比,
测试方法是:使用一个GPIO管脚作为标志,在计算前置为高电平,计算结束置为低电平。
C6748的测试结果如下,:
数据类型 | 除法 | 是否使用优化库(mathlib) | |
否 | 是 | ||
double | 单次除法 | 2.92us | 1.2us |
两次除法 | 5.5us | 1.8us | |
float | 单次除法 | 1.2us | 1.04us |
两次除法 | 1.8us | 1.36us |
注:C6748的程序是在外部DDR里运行的,其中模块工作频率如下:
Core: 456MHz
EMIFA: 114MHz
DDR: 156MHz
F28335的测试结果如下:
数据类型 | 除法 | 是否使用优化库(rts2800_fpu32_fast_supplement.lib) | |
否 | 是 | ||
double | 单次除法 | 1.6us | 0.228us |
两次除法 | 3.16us | 0.412us | |
float | 单次除法 | 1.6us | 0.228us |
两次除法 | 3.16us | 0.412us |
注:F28335的主频为150MHz,程序运行在内部RAM上。
从测试的结果看,
在都不使用官方优化库的情况下,C6748的double和float单次除法计算时间分别为2.58us、0.6us,使用优化库时间分别为0.6us、0.32us。
在都不使用官方优化库的情况下,F28335的double和float单次除法计算时间都为1.56us,使用优化库的时间都为0.184us。
怎么感觉C6748的使用优化库进行浮点运算还不如F28335的浮点运算能力,想请教相关大牛,是否C6748得mathlib使用库有什么不对的地方?
Shine:
一个放在外部DDR,一个放在内部RAM上运行时间会不一样。
Yong Cao1:
麻烦 楼主:是否 可以将 您的
完整 测试工程 用本论坛 附件
打包发送上来?。万分感谢。。
lin li18:
楼主,可否发一份您的完整文件,我也在做和您相同的事情。想学习学习
lin li18:
回复 lin li18:
我用了mathlib,10W次除法38.75ms,单次就是0.3875us,您是放在ddr里156MHZ,我是ram456MHZ,0.3875*3=1.15us
lin li18:
还想问您一下,您的mathlib库里有浮点乘法的么,我没找到