浮動小数点演算がハードウェアで実行されているのか、ソフトウェアで実行されているのか、どうすればわかりますか?
プロセッサ名とGoogleを見つけることができますが、BASHスクリプトでこれを行う方法はありますか?たとえば、システムファイルに私が読める内容が保存されていますか?
アップデート:Intelの/ proc / cpuinfo出力:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 69
model name : Intel(R) Core(TM) i3-4010U CPU @ 1.70GHz
stepping : 1
microcode : 0x17
cpu MHz : 782.000
cache size : 3072 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes <-- !!!
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips : 3392.25
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
RPiの/proc/cpuinfo出力(Raspian v7を使用):
processor : 0
model name : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS : 2.00
Features : swp half thumb fastmult vfp edsp java tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xb76
CPU revision : 7
Hardware : BCM2708
Revision : 000e
Serial : 000000007b455c14
答え1
さて、保存されたデータを使用してCPUにFPU機能があることを確認し、
/proc/cpuinfo
次のコマンドを使用してフィルタリングできます。grep fpu
$ grep "fpu" /proc/cpuinfo
fpu : yes
fpu_exception : yes
flags : fpu vme de pse ...
詳しくは、使用しているCPUの種類が何であるかを確認してください。遊ぶそして? :)
編集する
ARMプロセッサの場合は、ベクトル浮動小数点単位(vfp
)を見つけます。ここ。
前任者:
# cat /proc/cpuinfo
Processor : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS : 697.95
Features : ... vfp ...
答え2
私の考えでは、あなたがしたいのは、いくつかのベンチマークを実行し、他のプロセッサと比較することです。そうでなければ、浮動小数点を実行するのがハードウェアかソフトウェアであるかはあまり意味がありません。実際、両方とも可能です。たとえば、ソフトウェアで非正規性がシミュレートされる場合があります。一部のタスクはソフトウェアでも実装できますが、それでも他のハードウェアFPコマンドに基づいています。 Itaniumの除算と平方根(FMAのおかげで)と一般的な基本関数(exp、log、sin、cos...)(x86プロセッサ)これらの機能のハードウェア実装がありますが、精度には制限があります。 Cでは、このlong double
タイプはPowerPC(倍精度算術)。
浮動小数点の実装に関するシステム情報を取得するには、ほとんどの情報をから入手してください/proc/cpuinfo
。ただし、Cライブラリのバージョンも便利です(数学関数の場合)。