빌드가 -11 오류를 반환합니다. 펑션 함수를 삭제하면 잘 컴파일됩니다. 임베디드 프로필을 사용하고 있지 않습니다.OpenCL에서 Math 기본 제공 함수를 사용할 수없는 이유는 무엇일까요? 일부 지시어를 사용해야합니까?
__kernel void VectorAdd(__global int* a)
{
unsigned int n = get_global_id(0);
a[n] = pow(2, 2);
}
임 오류를 잡기하지만 문자열이 비어
int err = clBuildProgram(OpenCLProgram, 0, NULL, NULL, NULL, NULL);
if (err != CL_SUCCESS)
{
size_t len;
char buffer[2048];
printf("Error: Failed to build program executable!\n");
clGetProgramBuildInfo(OpenCLProgram, cdDevice, CL_PROGRAM_BUILD_LOG, sizeof(buffer), buffer, &len);
printf("%s\n", buffer);
exit(1);
}
유용한 정보 :
CL_DEVICE_NAME : AMD 라데온 HD - 파이어 D300 계산 엔진
CL_DRIVER_VERSION : 1.2 (2017년 1월 10일 22 : 25:08)
문제가 정수와 함께 발생했습니다. 나는 2.0으로 바뀌고 작동 중이다. 정수에는 사용할 수 없습니까? – Eduardo
@Eduardo buildinfo 문자열이 비어 있으면 필요한 길이를 확인하고 버퍼를 동적으로 할당하십시오. 2048 바이트 버퍼가 충분히 클 수 없습니다. – pmdj
다른 버전의 pow가 있습니다. 지수가 정수인 경우'pown()'을 사용할 수 있지만 첫 번째 인수는 부동 소수점 값이어야합니다. – kanna