
저는 상당히 오래된 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/cpuinfo
VFP support
/proc/cpuinfo
Allwinner 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은 armel
FPU를 사용하지 않지만 Debian armhf
(및 Raspbian armhf
)은 arm
FPU 명령어를 사용하지만 하드웨어가 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가 없습니다. 어쩌면 랩스베리 소유자일까요?