2015-07-01 3 views
1

Я написал код в OpenCL. При создании программы ядра возникает ошибка. Код ошибки: -11. Я попробовал распечатать BUILD LOG, но он не печатает правильный журнал, но вместо этого генерирует некоторые случайные переменные. Вот та частьclGetProgramBuildInfo не печатает журнал построения

//these are variable declarations 
cl_device_id* devices; 
cl_program kernelprgrm; 
size_t size; 
//these varaibles have already been assigned properly 

//main code 
clGetProgramBuildInfo(kernelprgrm,devices[i], CL_PROGRAM_BUILD_LOG ,0,NULL,&size); 
char *buildlog=(char*)malloc(size); 
clGetProgramBuildInfo(kernelprgrm,devices[i], CL_PROGRAM_BUILD_LOG ,size,buildlog,NULL); 
printf("\n\nBuildlog: %s\n\n",buildlog); 

Это дает следующий результат: -

Buildlog: ���0 

Пожалуйста, помогите мне в получении надлежащего журнал сборки. Благодаря

+0

Пожалуйста, добавьте надлежащую проверку ошибок на ваш OpenCL называет иначе вся помощь спорно. –

+0

У меня уже есть. Все, что работает, прекрасно работает. Платформы становятся перечисляемыми. Я построил контекст, командный. Все остальное работает, но есть ошибка с кодом ядра, который я пытаюсь выяснить, используя buildlog, но он не дает мне точной ошибки. @ buttiful-buttefly – ikk

+0

Вы проверили коды ошибок, возвращаемые 'clGetProgramBuildInfo'? – jprice

ответ

1

Я тестировал этот код на моей машине, и она работает нормально:

size_t len = 0; 
cl_int ret = CL_SUCCESS; 
ret = clGetProgramBuildInfo(program, device_id, CL_PROGRAM_BUILD_LOG, 0, NULL, &len); 
char *buffer = calloc(len, sizeof(char)); 
ret = clGetProgramBuildInfo(program, device_id, CL_PROGRAM_BUILD_LOG, len, buffer, NULL); 

Как только это выглядит так, как ваш код, есть 2 различия, которые могут производить ошибку:

  • Проверить коды возврата
  • Проверить индекс устройства в массиве. Может быть, вы хотите получить журнал с неправильного устройства.
+0

Отсортировано, но возвращает пустую строку, CL_BUILD_NONE'. Несмотря на то, что моя программа успешно завершена, что это означает, что она имеет значение? – ikk

+0

Дает ли вам пустой журнал после успешной сборки? –

+0

да .. он делает .. – ikk

Смежные вопросы