Что такое перрор (), эквивалент для кодов ошибок в OpenCL?

StackOverflow https://stackoverflow.com/questions/2399363

Вопрос

Если у меня есть что-то вроде:

err = clEnqueueReadBuffer(cmdQueue, output, CL_TRUE, 0, sizeof(float) * data_sz, &results, 0, NULL, NULL);

Я хотел бы сделать:

if (err != CL_SUCCESS){
    perror("Read Failed!");
}

Но константы ошибок, такие как «CL_HOST_OUT_OF_MEMORY», и тому подобное, не известны PERROR ().

Я мог бы обойти файлы .h, связанные с OpenCL, но это не идеальное решение. Я открыт для любых других удобных способов отслеживания номеров ошибок. Я на osx Snow Leopard (в том числе, на всякий случай, но я не думаю, что это актуально)

Это было полезно?

Решение

Если у вас есть NVIDIA OpenCL SDK, вы можете использовать oclErrorString() Функция, предоставленная окклатилами.

Другие советы

В настоящее время нет нет. Я закончил писать свои собственные, в стиле gluErrorString(). Отказ Я просто вставил все cl_error Коды в файл и обработают каждую строку в Emacs для преобразования его в кучу случаев внутри оператора выключателя (чтобы разрешить разрывные записи), которые возвращают постоянные строки. Это было довольно легко и довольно полезно. Я могу опубликовать его где-то, если вам нравится.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top