Возможно ли в Halide создать файл, содержащий сгенерированный код OpenCL? Я попытался создать файл c из программы Halide, целью которой был бы opencl, но я не вижу там никакого кода, специфичного для opencl.
Редактировать 1:
Особенно хотелось бы посмотреть, как создаются ядра в Halide. Что-то вроде этого:
static char
kernelSourceCode[] =
kernel void test_kernel(int a, int b, __global int *out)
{
out[0] = a + b;
}
Редактировать 2:
Хорошо, я поставил HL_DEBUG_CODEGEN=1 в переменную env и установил в коде set_target(Target::Debug). У меня на экране куча кода, некоторые из которых были кодом OpenCL, но я все еще не вижу кода, специфичного для ядра.
На экране есть две строки, которые указывают на наличие ядер. Должно быть что-то?
OpenCL kernel:
/*OpenCL C*/
Потом еще есть строчка:
kernel void _at_least_one_kernel(int x) { }
Например, если у меня есть такая функция:
gradient(x, y) = x + y;
Является ли функция внутри ядра, если я хочу настроить таргетинг на OpenCL?