私はかなり古いFreescale ARMチップをベースにした組み込みLinuxボードを使用しています。 PythonインタプリタがオンチップハードウェアFPUを使用しているかどうかはどうすればわかりますか?
私の/proc/cpuinfoは次のようになります。
プロセッサー: ARM926EJ-S Revision 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
(DebianアーカイブにはそのようなCライブラリがないようですが)。
答え2
努力する
awk '$1 == "fpu" { print $3 ; }' /proc/cpuinfo
これは
yes
yes
使用できません
awk '$1 == "fpu" { print $3 ; exit ;}' /proc/cpuinfo
4つしかありません。
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はありません。たぶんラプスベリーの所有者ですか?