你(们)好。
我注意到、当我将--fp_mode 设置为在优化设置中宽松时、中断内的代码执行速度要快得多。
请简要说明将--fp_mode 设置为"宽松"而不是"严格"的含义。 将 --fp_mode 设置为"relaxed"是否存在任何问题或风险?
非常感谢、
Leo
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.
你(们)好。
我注意到、当我将--fp_mode 设置为在优化设置中宽松时、中断内的代码执行速度要快得多。
请简要说明将--fp_mode 设置为"宽松"而不是"严格"的含义。 将 --fp_mode 设置为"relaxed"是否存在任何问题或风险?
非常感谢、
Leo
您好、Leandro、
从 C 编译器指南的第2.3.3节中:
"宽松浮点模式会在可能的情况下将双精度浮点计算和存储转换为整数。 这种行为不符合 ISO 标准、但会导致更快的代码、并导致精度降低。 以下特定更改在宽松中发生
模式:
•除以常量被转换为反向乘法。
•某些 C 标准浮点函数-例如 sqrt、sin、cos、atan 和
ATAN2--在可能的情况下重定向到优化的内联函数。
•如果使用--tmu_support 选项来启用对的支持
三角数学单元(TMU)和宽松浮点模式为
启用后、RTS 库调用将替换为相应的 TMU
以下浮点运算的硬件指令:
浮点除法、sqrt、sin、cos、atan、 和 atan2。 请注意
TMU 硬件之间存在算法差异
指令和库例程、也就是运算结果
可能略有不同。"
您可以在此处下载指南:
http://www.ti.com/lit/ug/spru514n/spru514n.pdf
如果您使用的是"FastRTS"库、则需要在宽松模式下进行编译。 同样、这可以加快您的代码速度。
此致、
Richard