2017-02-20 16 views
1

Intel Knights Landing에서 Intel C++ 컴파일러 및 AVX512 지원을 사용하여 C/C++ 코드를 컴파일하는 방법에 대한 this 문서를 읽습니다.AVX512로 컴파일하는 것에 대한 혼란

는 그러나, 나는이 부분에 대해 조금 혼란 스러워요 :

-xMIC-AVX512 : AVX-512F, AVX-512CD, AVX-512ER와 AVX-512FP를 생성하기 위해이 옵션을 사용합니다.

-xCORE-AVX512 :이 옵션을 사용하면 AVX-512F, AVX-512CD, AVX-512BW, AVX-512DQ 및 AVX-512VL을 생성 할 수 있습니다.

예를 들어 Intel Xeon Phi 프로세서 x200에 대한 Intel AVX-512 명령어를 생성하려면 -xMIC-AVX512 옵션을 사용해야합니다. 당신은 인텔 제온 파이 프로세서 X200를위한 거대한 바이너리를 구축하려는 때 예를 들어, 리눅스 시스템

$의 ICC -xMIC-AVX512의 application.c에서이 컴파일러 옵션이 유용합니다. 대신

내 제온 파이 KNL 보조 프로세서가없는, 더 시간이 걸릴 것 코 프로세서에 구축 인텔 제온 프로세서 기반 시스템에 구축의 (필요가 micX 나에를 ssh를 없습니다 -mmic 플래그로 컴파일). 그러나 -xMIC 또는 -xCORE을 사용하는 것이 더 나은지 이해할 수 없습니까? 여러 플랫폼에서 실행할 수있는 바이너리를 빌드 할 때

이 컴파일러 옵션이 유용합니다 : 두 번째 장소에 대해 -ax 대신 -x에서

.

그래서 -ax은 플랫폼 간 지원을 위해 사용되지만 성능 차이는 -x입니다.

+0

'-xCORE'는 AVN-512BW, AVX-512DQ 및 AVX-512VL을 지원하지 않기 때문에 KNL에서 작동하지 않습니다. –

답변

1

인텔 제온 피 프로세서 x200 (일명 KNL 프로세서) 용으로 컴파일하려면 첫 번째 질문은 -xMIC-AVX512를 사용하십시오. "이 컴파일러 옵션은 인텔 제온 피 프로세서 x200에 대한 거대한 바이너리를 빌드하려는 경우에 유용합니다. 인텔 제온 피 프로세서 x200에 빌드 대신 인텔 제온 프로세서 기반 시스템에서 구축하는 데 더 많은 시간이 걸릴 것입니다. "

Intel Xeon Phi 프로세서 x200에서 바이너리를 실행하면 성능 차이가 발생하지 않습니다. 그러나 -ax 옵션을 사용하여 컴파일 한 바이너리의 크기는 -x 옵션을 사용하여 컴파일 한 크기보다 커야합니다.

+0

죄송하지만 약간 혼동 스럽습니다. "Intel Xeon 프로세서 기반 컴퓨터"는 무엇입니까? 내가 말했듯이, 제 경우에는 ssh-ed가되어야하는 코 프로세서가없고 코드를 실행할 곳이 있습니다. "main"머신 만 ssh로 컴파일하고 코드를 실행합니다. – justHelloWorld

+0

@justHelloWorld "Intel Xeon 프로세서 기반 시스템"은 Intel 컴파일러가있는 KNL이 아닌 시스템을 의미합니다. 다른 컴퓨터에서 실행 가능한 파일을 빌드 한 다음 KNL 시스템에 바이너리를 복사 할 수 있습니다. 요점은 KNL 머신의 코어는 저전력 및 저주파 (OTOH가 많기 때문에)이므로 다른 머신에서 빌드하고 바이너리를 복사하는 것이 더 빠를 수도 있습니다. –