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