如何判断Linux主板是否使用硬件FPU?

如何判断Linux主板是否使用硬件FPU?

我使用的是基于相当旧的 Freescale ARM 芯片的嵌入式 Linux 板。如何判断Python解释器是否使用芯片上的硬件FPU?

我的 /proc/cpuinfo 是:

处理器:ARM926EJ-S 修订版 5 (v5l)
博戈MIPS:179.81
特点:swp halfthumb fastmult edsp java
CPU实施者:0x41
CPU架构:5TEJ
CPU 版本:0x0
CPU部分:0x926
CPU版本:5

答案1

在 ARM 世界中,从 ARMv4 到 ARMv7 浮点支持称为VFP,并且对它的硬件支持出现在引导时内核打印的Features/proc/cpuinfo或日志消息中。 VFP support(在 ARMv8 中只是“FP”。)

/proc/cpuinfoAllwinner A20 上,这给出了:

Features    : swp half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 

(查看各种vfp功能)并在启动日志中:

VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 4

如果 VFP 不完全支持,内核将改为记录

VFP support v0.3: not present

或者

VFP support v0.3: no double precision support

至于您的 Python 解释器是否能够使用它,似乎主要取决于您的 ARM Linux 发行版的体系结构。如果我理解正确的话,基本的 Debianarmel不会使用 FPU,Debian armhf(和 Raspbian armhf)会;较旧的 Debianarm变体使用 FPU 指令,但如果硬件不支持它们,则会模拟这些指令。您armel可以安装支持 FPU 的内核或 C 库(尽管 Debian 档案中似乎没有此类 C 库)。

答案2

尝试

awk '$1 == "fpu" { print $3 ; }' /proc/cpuinfo

这给了

yes
yes

你不能用

 awk '$1 == "fpu" { print $3 ; exit ;}' /proc/cpuinfo

只有一个是的。

仅仅 grep 就会产生(标志行缩写)

fpu         : yes
fpu_exception       : yes
flags               : fpu vme de pse tsc msr pae mce cx8 apic sep mtr ...
fpu         : yes
fpu_exception       : yes
flags               : fpu vme de pse tsc msr pae mce cx8 apic sep mtr ...

不幸的是,我没有 FPU less linux 来进行测试,也许是 rapsberry 所有者?

相关内容