Когда я пытаюсь запустить ядро opencl, я получаю сообщение об ошибке:
Error building: stringInput.cl:1:197: error: call to 'pow' is ambiguous
/usr/lib/x86_64-linux-gnu/beignet/include/ocl_math.h:49:20: note: candidate function
/usr/lib/x86_64-linux-gnu/beignet/include/ocl_math.h:148:19: note: candidate function
Я использую ниже C ++ Opencl код:
std::string kernel_code=
" void kernel simple_add(global const int* A, global const int* B, global int* C){ "
" for(int i=0;i<20000;i++) { "
" for(int j=0;j<20000;j++) { "
" for(int k=0;i<20000;i++) { "
" int d1 = sqrt(pow(A[i]-A[j],2)+pow(B[i]-B[j],2)+pow(C[i]-A[j],2)) "
" int d2 = sqrt(pow(A[i]-A[k],2)+pow(B[i]-B[k],2)+pow(C[i]-A[k],2)) "
" int d3 = sqrt(pow(A[k]-A[j],2)+pow(B[k]-B[j],2)+pow(C[k]-A[j],2)) "
" C[i+j]=A[i]+B[j]+k; "
" } "
" } "
" } "
" } ";
sources.push_back({kernel_code.c_str(),kernel_code.length()});
Я использую графическую карту Intel и Opencl Bingnet. Здесь, когда я не использую функции pow или sqrt внутри кода ядра, все работает нормально. Итак, как мне использовать другие функции c ++ в ядре opencl?