2014-05-21 2 views
0

컴파일 할 때 인텔 MIC 실패,하지만 난OpenCL을 라이브러리에 링크 내가 <br> 그래서 내가 제대로 호스트에서 OpenCL을 실행할 수 있습니다, 지금 내 서버에 <br> 인텔의 OpenCL SDK를 설치하려고, 제온 파이 코 프로세서에서 OpenCL을 실행하려면

은 "libOpenCL.so"
icpc capsbasic.cpp -mmic -lOpenCL -ocapsbasic 
x86_64-k1om-linux-ld: skipping incompatible /opt/intel/opencl/lib64/libOpenCL.so       
when searching for -lOpenCL 
x86_64-k1om-linux-ld: cannot find -lOpenCL 
make: *** [capsbasic] Error 1 

이 존재하고, 그것은 "-mmic"태그없이 잘 실행할 수
내가 그렇게 나쁜 생각 아무것도 내가 할 수있는이 같은 MIC 사용하여 코드를 컴파일하려고 그것을 고쳐야합니까?

답변

1

-mmic 플래그는 전적으로 코 프로세서에서 실행되는 고유 바이너리를 작성하는 데 사용됩니다. OpenCL을 사용하는 경우 이 아니라입니다. OpenCL 접근법은 호스트 CPU에서 코드를 실행하고 OpenCL 런타임 API를 사용하여 코드의 집중적 인 부분을 디바이스로 오프로드하는 것입니다. 응용 프로그램이 호스트 CPU에서 실행될 때 Xeon Phi가 OpenCL 장치로 표시되어야합니다. 그렇지 않은 경우 장치가 올바르게 구성되어 있지 않습니다. 올바른 OpenCL SDK뿐만 아니라 Intel MPSS driver도 설치했는지 확인하십시오.

+0

아, 정말 고마워! 내 혼란을 정말로 해결했다. 인텔에서 샘플 코드를 실행하면 내 장치 이름을 올바르게 볼 수있다. 코드를 제온 파이에서 실행하려면 코드를 직접 변경해야합니다. 맞습니까? –

+0

네,'clGetDeviceIDs'를 호출 할 때 장치 타입'CL_DEVICE_TYPE_ACCELERATOR' (또는'CL_DEVICE_TYPE_ALL')을 사용할 필요가 있습니다. – jprice

+0

감사합니다. 나는 그것을 나중에 시험 할 것이다! –