gpt4 book ai didi

c++ - Raspberry Pi 上的浮点性能(ARM 架构,BCM2835)

转载 作者:太空宇宙 更新时间:2023-11-04 04:42:29 25 4
gpt4 key购买 nike

通过阅读有关现代桌面处理器浮点性能的其他问题,我的理解是“哪个更快,double 还是 float?”这个问题的答案。取决于这些类型中的哪一种是在硬件中实现的,还是在 CPU 的 ALU(我认为是算术逻辑单元)中实现的。

我的理解是,如果 float 是在硬件中实现的,那么使用 double 数据类型会比较慢,因为使用该数据类型的数学是通过使用 float 数据类型的软件实现的。因此 double 更慢并且使用更多 ram。

另一方面,如果在硬件中实现 double ,我的理解是必须进行转换(有点像截断)才能转换为 float 据类型。因此使用 float 会更慢,尽管它会使用更少的内存。

在 Raspberry-Pi 上,硬件实现了哪种数据类型? (等效地,float 还是 double 哪个更快?)

我尝试阅读 BCM2835 数据表的有限部分,但没有找到我要搜索的信息。

我应该解释一下,我想不出一个好的方法来测试性能,所以我没有运行任何定时测试。我所说的好方法是指一种评估所有可能的计算,或者至少是我应该测试的计算,以及一种会给出一致结果的测试,具有足够的差异,可以合理确定地得出结论,即一种数据类型比其他。

最佳答案

Raspberry Pi 使用 ARM1176JZF-S(*) 作为其 CPU,根据 Wikipedia ,它具有流水线单精度和 double 浮点的硬件支持。您可以在 TRM on ARM's website 中查找确切的延迟和吞吐量数据。 .短版:单人和双人的延迟相当; double 乘法的吞吐量是单精度的一半。

请注意, float 仅在 1176 的 arm 模式下受支持; “thumb 1”指令集根本不允许访问浮点寄存器。

(*) 1176 是古老的。我有点惊讶没有找到像 A9 或 M4 这样更现代的东西。

关于c++ - Raspberry Pi 上的浮点性能(ARM 架构,BCM2835),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24849660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com