제온 용으로 최적화 할 때 사용할 gcc 컴파일러 플래그를 입력하고 싶습니다.제온 용 gcc 최적화 플래그?
mtune 또는 march에 'xeon'이 없으므로 가장 가까운 일치 항목이 있습니까?
제온 용으로 최적화 할 때 사용할 gcc 컴파일러 플래그를 입력하고 싶습니다.제온 용 gcc 최적화 플래그?
mtune 또는 march에 'xeon'이 없으므로 가장 가까운 일치 항목이 있습니까?
제온은 마케팅 용어로서 매우 다른 내부 구조의 프로세서 목록을 포함합니다.
새로운 Nehalem 프로세서 (Core i7)를 사용하신다면 this slide은 4.3.1 gcc에서 -march = generic을 사용해야 함을 나타냅니다. 그러나 자신의 응용 프로그램을 테스트 할 때 다른 설정이있을 수 있습니다. FP 수학의 측면을 최적화하려면 4.3 계열에 -msse4.2를 추가하십시오.
여기에 some discussion은 인텔 컴파일러의 튜닝과 일부 gcc 플래그의 비교입니다.
토론은 끊어진 링크입니다. 사실, 두 링크가 모두 망가져 있습니다. :) –
march = native는 자신의 컴퓨터에서는 정상이지만 바이너리 릴리스에서는 좋지 않습니다.
-march = 노코나는 원자 330 (P4/64 비트) -march = 코어 2 난 당신이 64 비트를거야 있으리라 믿고있어 코어 2
위한 권장된다.
인텔 CPU 및 x86_64에 대한 나의 경험은 gcc가 특정 CPU 유형을 최적화하도록 할 때마다 성능이 -march = generic보다 좋지 않은 것으로 나타났습니다. YMMV, 물론, 그러나 나는 여러 해 동안 이런 것들을 가지고 놀고 있었고, 항상 그렇게 해왔다.
OTOH, 그것은 감각, 적어도는 i686 대상으로하거나 만들 수도 i386에서 당신은 SSE 수학, 적어도 펜티엄 4
최근 GCC/제온에 대한 업데이트를 원하는 경우.
Sandy-Bridge-based 제온 (E3-12xx 시리즈 E5-14xx/24XX 시리즈는 E5-16xx/26xx/46XX 시리즈).
-march=corei7-avx
GCC < 4.9.0 또는 -march=sandybridge
GCC> 4.9.0 인 경우.
이렇게하면 Advanced Vector Extensions support과 Sandy Bridge에 대한 AES 및 PCLMUL 명령어 세트를 사용할 수 있습니다. 다음은 GCC의 i386/x86_64의 옵션 페이지에서 개요입니다 :
64 비트 확장, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AES와인텔 코어 i7 CPU와 PCLMUL 명령어 세트 지원.
Ivy-Bridge-based 제온 (E3-12xx V2 시리즈, E5-14xx V2/V2의 24XX 시리즈, E5-16xx V2/26xx에 V2/V2의 46XX 시리즈, E7-28xx에 V2/48xx에 V2/88xx v2 시리즈).
-march=core-avx-i
GCC < 4.9.0 또는 -march=ivybridge
GCC> = 4.9.0 인 경우.
새로운 Ivy 명령 세트 (FSGSBASE, RDRND 및 F16C)를 지원하기 위해 Sandy Bridge (corei7-avx) 옵션을 포함합니다. GCC 옵션 페이지에서 :
64 비트 확장, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AES, PCLMUL, FSGSBASE, RDRND 및 F16C6 명령과인텔 코어 CPU 지원을 설정하십시오.
Haswell-based 제온 (E3-1xxx V3 시리즈, E5-1xxx V3 시리즈, E5-2xxx V3 시리즈).
-march=core-avx2
GCC 4.8.2/4.8.3 또는 -march=haswell
for GCC> = 4.9.0. GCC 옵션 페이지에서
:
64 비트 확장, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2 인텔 하 스웰의 CPU, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2 및 F16C 명령 세트 지원.
Broadwell-based 제온 (E3-12xx의 V4 시리즈 E5-16xx의 V4 시리즈)
GCC 4.8.x에 대한 -march=core-avx2
또는 GCC> = 4.9.0 용 -march=broadwell
. GCC 옵션 페이지에서
:
64 비트 확장, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2 인텔 브로드 웰의 CPU, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX 및 PREFETCHW 명령 세트 지원.
Skylake-based 제온 GCC 가입일 (E3-12xx의 V5 시리즈)
GCC 4.8.x에 대한 -march=core-avx2
또는 GCC 4.9.x에 대한 -march=skylake
또는 GCC위한 -march=skylake-avx512
> = 5.x를
옵션 페이지 :
64 비트 확장, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCN와인텔 스카이 레이크 서버 CPU T, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, AVX512F, AVX512VL, AVX512BW, AVX512DQ 및 AVX512CD 명령 세트 지원.
-march=native
옵션과 함께 할 것을 확인하세요
는
gcc -march=native -Q --help=target
다음은 프로세서가 지원하는 모든 플래그를 표시합니다 :
cat /proc/cpuinfo | grep flags | head -1
proccesor에 대해 최적화가 어떤 것인지를 결정하는 가장 좋은 방법은 모델뿐만 아니라 gcc의 버전에 따라 다릅니다 컴파일 중입니다. 자신의 문서에 당신이 가진 GCC의 버전을 반드시 확인하고 상호 참조하십시오 :
https://gcc.gnu.org/onlinedocs
즉, 내가 GCC 4.8.2을 가지고 슬랙웨어 14.1 64를, 그래서 내가 여기에 갈 것 :
을https://gcc.gnu.org/onlinedocs/gcc-4.8.2/gcc/i386-and-x86-64-Options.html#i386-and-x86-64-Options
어떤 Xeon이 타겟팅되는지 더 자세히 알고 싶을 수 있습니다. 제온 (Xeon) 브랜드는 꽤 오랜 기간 동안 사용되어 왔으며 매우 다양한 아키텍처에 이르기까지 다양합니다. –