Ho lavorato un po 'in OpenCL ora, ma recentemente "clBuildProgram" non è riuscito in uno dei miei programmi. Il mio codice brano è qui sotto:clBuildProgram non riuscito con codice errore -11 e senza registro build
cl_program program;
program = clCreateProgramWithSource(context, 1, (const char**) &kernel_string, NULL, &err);
if(err != CL_SUCCESS)
{
cout<<"Unable to create Program Object. Error code = "<<err<<endl;
exit(1);
}
if(clBuildProgram(program, 0, NULL, NULL, NULL, NULL) != CL_SUCCESS)
{
cout<<"Program Build failed\n";
size_t length;
char buffer[2048];
clGetProgramBuildInfo(program, device_id[0], CL_PROGRAM_BUILD_LOG, sizeof(buffer), buffer, &length);
cout<<"--- Build log ---\n "<<buffer<<endl;
exit(1);
}
Normalmente in precedenza ho avuto la sintassi o altri errori all'interno del file del kernel qui con l'aiuto di "clGetProgramBuildInfo()" la funzione ogni volta che "clBuildProgram" Impossibile, ma quando questo programma viene eseguito, su console solo stampe:
Programma generazione non riuscita --- --- costruire registro
E quando ho provato a stampare il codice di errore restituito da "clBuildProgram"; è "-11" ...... Quale può essere il problema con il mio file del kernel che non ottengo informazioni sulla mancata compilazione?