This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F2800157:atan ()的运行时间比 atanf ()长很多。

Guru**** 2535750 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1410434/tms320f2800157-atan-runs-for-a-lot-longer-than-atanf

器件型号:TMS320F2800157

工具与软件:

尊敬的 Champs:

我 在 math.h 中使用了 atan ()和 atanf (), 在下面的函数中使用了 double 和 float 变量,但我发现它们的运行时间差别很大。  

浮点 atanf ()仅花费~35个周期,而双倍 atan ()成本~3370个周期。

为什么这两个函数的运行时间相差这么大?  

如果客户需要在双模式下使用 atan (),如何缩短运行时间? 我还检查 TMU、但它仅支持浮点模式。

谢谢!

Julia

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Julia:

    我将召集编译器专家来回答您的问题。

    此致、

    Delaney

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    假设您是采用这些进行构建的 -- abi=eabi. 、因此使用较新的 EABI、而不是较旧的 COFF ABI。   

    float atanf ()仅成本~35个周期,但 double atan ()成本~3370个周期。

    类型 悬空 由32位 IEEE 格式表示。  类型 双精度 由64位 IEEE 格式表示。  使用较大的格式执行任何计算需要更多的指令。

    如果您的 C28x 器件支持 TMU 指令、则需要使用内在函数 ___ atan 、它甚至更快。

    谢谢。此致、

    -George.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、George:

    是的、我检查了 TMU  ___ atan 但它需要 float 类型,因此如果客户需要 double 类型,他们只能使用 atan (),并花费更长的时间。 对吗? 谢谢!  

    Julia

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="486218" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1410434/tms320f2800157-atan-runs-for-a-lot-longer-than-atanf/5405511 #5405511"]是的、我检查了 TMU  ___ atan 但它需要 float 类型,因此如果客户需要 double 类型,他们只能使用 atan (),并花费更长的时间。 对吗?

    您是对的。

    谢谢。此致、

    -George.