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행 이나 로그 메시지에 나타납니다. (ARMv8에서는 그냥 "FP"입니다.)/proc/cpuinfoVFP support

/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 배포판의 아키텍처에 따라 달라지는 것 같습니다. 내가 올바르게 이해했다면 기본 Debian은 armelFPU를 사용하지 않지만 Debian armhf(및 Raspbian armhf)은 armFPU 명령어를 사용하지만 하드웨어가 FPU 명령어를 지원하지 않으면 해당 명령어를 에뮬레이션합니다. FPU를 지원하는 커널이나 C 라이브러리를 설치할 수 armel있습니다(데비안 아카이브에는 그러한 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 ...

불행히도 테스트할 Linux가 적은 FPU가 없습니다. 어쩌면 랩스베리 소유자일까요?

관련 정보