首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为了提高性能,可以在多大程度上违反IEEE 754?

为了提高性能,可以在多大程度上违反IEEE 754?
EN

Stack Overflow用户
提问于 2020-12-03 22:27:54
回答 2查看 66关注 0票数 0

正如我们所知,“不完全符合IEEE754,但速度更快”的做法是存在的。这是编译器可选的功能(与floating-point modelfloating-point behavior相关的选项)。但是,IEEE 754的哪些要求是永远不能违反的?是否有任何附录描述这些方面(即“优化IEEE754实现可以走多远?”)。

EN

回答 2

Stack Overflow用户

发布于 2020-12-03 22:37:03

Wikipedia给出了一些方向/线索:

该维基百科条目的其他部分描述了所需的功能。

票数 2
EN

Stack Overflow用户

发布于 2020-12-03 23:04:53

正如我们所知,存在“不完全符合IEEE754,但速度更快”的做法。这是编译器可选的功能(与浮点模型或浮点行为相关的选项)。但是,IEEE 754的哪些要求是永远不能违反的?

这主要是为了讨论在“不完全”这个词不再合适之前,你能得到多少好处。如果你想从字面上理解,你可以只有一个符号位(符合IEEE 754),没有其他符号位(没有指数,没有意义),仍然说“不完全符合”,并且在技术上是正确的;但在这种情况下,大多数人会抱怨“不完全符合”的数量如此接近“不符合”,这是误导性的。

为了避免误导,“不完全兼容”更接近于“在实践中对大多数事情都足够兼容”,但这实际上取决于实现,应该这样解释(例如,可能应该理解为“阅读编译器手册”)。

请注意,通常“不完全兼容”实际上意味着它假装次法线为零,和/或信号NaNs不受支持,和/或精度高于其应有的精度(例如,80位浮点用于中间结果,导致比完全兼容时更准确的最终结果)。

此外,编译器通常会提供第三个更快(甚至更不兼容)的“快速数学”选项,并且在这种情况下不要使用“不完全兼容”一词。当这种情况发生时,“不完全符合”在“快速数学”和“完全符合”之间更有意义。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65127894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档