부동 소수점 연산이 하드웨어에서 수행되는지 소프트웨어에서 수행되는지 어떻게 알 수 있나요?

부동 소수점 연산이 하드웨어에서 수행되는지 소프트웨어에서 수행되는지 어떻게 알 수 있나요?

부동 소수점 연산이 하드웨어에서 수행되는지 소프트웨어에서 수행되는지 어떻게 알 수 있나요?

프로세서 이름과 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 라이브러리 버전도 유용할 수 있습니다(수학 함수의 경우).

관련 정보