web-dev-qa-db-ja.com

LinuxボードがハードウェアFPUを使用しているかどうかをどのように判断しますか?

かなり古いFreescale ARMチップに基づく組み込みLinuxボードを使用しています。PythonインタープリターがハードウェアFPUを使用しているかどうかを確認するにはどうすればよいですか?チップかどうか?

私の/ proc/cpuinfoは:

プロセッサ:ARM926EJ-S rev 5(v5l)
 BogoMIPS:179.81 
機能:swp half thumb fastmult edsp Java 
 CPUインプリメンター:0x41 
 CPUアーキテクチャ:5TEJ 
 CPUバリアント:0x0 
 CPUパーツ:0x926 
 CPUリビジョン:5 
6
SeanLabs

ARM ARMv4からARMv7への世界では、浮動小数点サポートが [〜#〜] vfp [〜#〜] と呼ばれ、ハードウェアサポートがFeatures/proc/cpuinfoの行、またはカーネルの起動時に出力されるVFP supportログメッセージ(ARMv8では、これは単に「FP」です)。

Allwinner A20の/proc/cpuinfoでは、次のようになります。

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)が使用します;古いDebian armバリアントはFPU命令を使用しましたが、これらはarmelでは、FPUをサポートするカーネルまたはCライブラリをインストールできます(そのようなCライブラリは、Debianアーカイブでは使用できないようです)。

7
Stephen Kitt

試す

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

与える

yes
yes

あなたは洗練することはできません

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

1つだけを持っています。

単なる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の少ないLinuxを持っていません、おそらくrapsberryの所有者ですか?

1
Archemar