FMA 명령어를 사용하는 방법에 대해 질문을했지만 사용하기 전에 먼저 (내 프로세서가 지원할 수 있는지) 알고 싶습니다.FMA 명령어 세트로 컴파일 할 수 있는지 어떻게 알 수 있습니까?
more /proc/cpuinfo
는 찾아 : 난 후 내가 (리눅스 작업)의 출력을 볼 필요가 있다고 말을 발견했다. 나는 이것을 얻는다 :
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 30
model name : Intel(R) Xeon(R) CPU X3470 @ 2.93GHz
stepping : 5
cpu MHz : 2933.235
size : 8192 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni
dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm ida dts tpr_shadow vnmi flexpriority ept vpid
bogomips : 5866.47
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
가장 흥미로운 부분은 플래그 부분이지만, 프로세서가이 지침을 지원할 경우 목록에서 찾는 방법을 모르겠습니다.
누구나 어떻게 알 수 있습니까? 고맙습니다.
당신은 컴파일 타임에 탐지에 대해 이야기하고, 당신이'-march = native'를 가정하는 것처럼 그것에 대해 이야기합니다. 이것은 합리적이지만 언급되어야합니다. gcc -march = haswell 또는 gcc -march = bdver2 (Bulldozer version2 = Piledriver) 대신'gcc -mtune = haswell -mavx2' ('-mfma'없이)를 실행할 수 있기 때문에 이것을 지적합니다. 그래서 이것은 실제 하드웨어와 일치하는 경우에만 활성화되는 대상 옵션을 탐지하는 신뢰할 수있는 방법입니다.'-march = '대신'-m ...'을 사용하여 수동으로 선택하지 않아야합니다. –
@ PeterCordes 맞아, 내 대답을 업데이트 해. – plasmacel