Part Number:TMS320C28346
TMS320C28346芯片,请问如何进一步提高浮点乘除法运算速度?感觉现在计算有点慢,时钟300M,一次乘法/除法需要约350ns左右。是否有更好的方法提高计算速度?
Green Deng:
你好,请问你目前是如何处理乘除法运算的?
,
wei wang:
你好,没有做特殊处理。首先是工程里面选择rts2800_fpu32.lib,浮点单元支持选择fpu32,然后包括了math.h和fpu.h文件,用到一些平方、开方以及fft运算。程序里面针对需要运算的浮点变量直接采用“ * ”、“ / ”等运算符。
,
Green Deng:
你好,使能了FPU的话乘法指令应该计算速度很快,和定点运算效率没有什么差别
但无论浮点还是定点,都请尽量避免除法。因为C2000有内置乘法硬件加速器,乘法、加法运算速度非常快,但除法会很占资源。
在实时性很强的算法中,如果一定要用到除法,尽量让除法在中断之外计算。
,
wei wang:
你好,请问还有其他方法提高计算速度吗? 确实需要乘法和除法,尽管不在中断内执行,但有时间要求。
,
Green Deng:
你的问题中提到
wei wang 说:一次乘法/除法需要约350ns左右
理论上乘法的速度会比除法快10倍以上,所以是否是测试有误?
另外,关于其他方法提高计算速度,我会咨询一下其他工程师,看是否有这方面的建议可以提供的。
,
wei wang:
你好,我是根据总的乘法、除法次数所用的时间预估每次乘法、除法的时间,如果乘法会比除法快10倍以上,那可能时间主要花在除法上。我这边抽空会再测一下单次乘法/除法的时间。还请帮忙看下是否有其他方法提高计算速度?谢谢。
,
Green Deng:
你好,因为这款芯片只有FPU,也没有TMU单元,所以浮点运算的话只能FPU。但是如果你转使用定点执行的话,也可以考虑使用IQMath。
,
wei wang:
好的,那估计计算速度暂时没法提高了。谢谢你!
,
Green Deng:
客气了