gpt4 book ai didi

performance - 在评估和比较 ARM 处理器中的浮点性能时,我应该为 mfpu 指定哪个 [neon/vfp/vfp3]?

转载 作者:行者123 更新时间:2023-12-04 23:54:36 26 4
gpt4 key购买 nike

我想评估一些不同的 ARM 处理器浮点性能。我使用 lmbench pi_css5 ,我在 float 测试中混淆了。

来自 cat /proc/cpuinfo (下面),我猜有 3 种类型的 float 功能:neon、vfp、vfpv3?从这里 question&answer ,这似乎取决于编译器。
我仍然不知道我应该在编译标志( -mfpu=neon/vfp/vfpv3 )中指定哪个,或者我应该用每个来编译程序,或者只是不指定 -mfpu ?

cat /proc/cpuinfo               
Processor : ARMv7 Processor rev 4 (v7l)
BogoMIPS : 532.00
Features : swp half thumb fastmult vfp edsp neon vfpv3 tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x2
CPU part : 0xc09
CPU revision : 4

最佳答案

它甚至可能比您预期的要复杂一些。 GCC arm options page不解释 fpu 版本,但是 ARM's manual for their compiler做。您还应该注意到 Linux doesn't provide whole story about fpu features ,只讲vfp , vfpv3 , vfpv3d16 , 或 vfpv4 .

回到你的问题,你应该选择其中最大的公因数,针对它编译你的代码并比较结果。另一方面,如果一个 CPU 有 vfpv4 而另一个有 vfpv3,你认为哪个更好?

如果您的问题很简单,只需在 neon 之间进行选择即可, vfpvfpv3 .选择 neon (source) .

-mfpu=neon selects VFPv3 with NEON coprocessor extensions.

从 gcc 手册中,

If the selected floating-point hardware includes the NEON extension (e.g. -mfpu=neon), note that floating-point operations will not be used by GCC's auto-vectorization pass unless `-funsafe-math-optimizations' is also specified. This is because NEON hardware does not fully implement the IEEE 754 standard for floating-point arithmetic (in particular denormal values are treated as zero), so the use of NEON instructions may lead to a loss of precision.



参见例如, Subnormal IEEE-754 floating point numbers support on ios...有关此主题的更多信息。

关于performance - 在评估和比较 ARM 处理器中的浮点性能时,我应该为 mfpu 指定哪个 [neon/vfp/vfp3]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18785527/

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