2013-08-14 2 views
1

OpenCL 프로그램을 성공적으로 실행하기 위해 Intel HD Graphics 4000 GPU가있는 OpenCL 용 Intel SDK를 사용하고 있습니다. 필자는 Nvidia 라이브러리가 설치되어 있으므로 인텔 OpenCL 라이브러리와 연결되도록했습니다.OpenCL 용 Intel SDK에서 printf 또는 디버거를 사용할 수 없습니다.

그러나, 커널에 printf() 전화를 퍼팅 clBuildProgram에 다음과 같은 옵션을 오픈 CL 컴파일러 오류를 비주얼 스튜디오 2012 플러그인에서

error: implicit declaration of function 'printf' is not allowed in OpenCL

또한, 내가 설정 한의 OpenCL 커널 디버깅을 제공하고, 통과 :

"-g -s C:\\Path\\to\\my\\program.cl" 

그러나 커널 중단 점은 건너 뜁니다.

The breakpoint will not currently be hit. No symbols have been loaded for this document.

내 커널은 별도의 .cl 파일에, 나는 중단 점을 C/C++ 코드를 내가하고자하는 방식을 설정 해요 : 브레이크 포인트를 통해 마우스를 가져 가면 메시지를 제공합니다. 이 방법은 OpenCL 디버거 용 인텔 SDK를 사용하여 중단 점을 설정하는 올바른 방법입니까?

printf() 호출 및 중단 점이 OpenCL 용 인텔 SDK에서 작동하지 않는 이유는 무엇입니까?

+0

성명 앞에 어딘가에'#pragma OPENCL EXTENSION cl_intel_printf : enable'을 추가하여 printf를 활성화 했습니까? –

+0

@MatthiasHolzapfel 예, 시도했습니다. –

+0

안녕하세요, 이전에 직면 한 것과 동일한 문제가 있습니다. 커널을 디버그 할 수 없으며 중단 점이 적중되지 않습니다. Visual Studio 2010과 함께 Intel OpenCL SDK 2014를 사용하고 있습니다. 솔루션을 찾았 으면 솔루션 – Steve

답변

2

printf() 함수는 OCL 버전 1.2에 도입되었습니다. 인텔은 오래 전에이 버전을 발표하지 않았습니다. 나는 당신이 여전히 1.1 버전을 가지고 있다고 확신한다. 나는 거의이 document에 있지만 기반을 사용한 적이 디버거에 대해서

경로가 그런 식으로 주어질 예정이다 : 당신은 또한에 당신 싶어 디버그 스레드를 선택 해야하는

"-g -s \"C:\\Path\\to\\my\\program.cl\"" 

.

+0

을 보내 주셔서 감사 드리며 링크 및 수정을 보내 주셔서 감사하지만 문제는 지속됩니다. 어제 인텔 버전을 다운로드했습니다. –

+0

심지어 printf()에 대해서? – CaptainObvious

관련 문제