Я попытался запланировать следующий код, и он показывает ошибку:
"Бессмысленно разбивать переменную x функции A0 $ 0 на x.x_outer * 4 + x.x_inner, потому что A0 $ 0 запланировано встроенным. "
Halide::Expr x0, y0, x00, y00;
Halide::Func dx, dy;
x0 = 1.2f*x;
y0 = 1.7*y;
x00 = Halide::cast<int32_t>(Halide::floor(x0));
y00 = Halide::cast<int32_t>(Halide::floor(y0));
Value(x,y,c) = img(x00+1,y00,c)*0.5f +
img(x00,y00+1,c)*0.7f;
Halide::Func A0;
A0(x, y, c) = x*Value(x,y,c);
Var x_outer, y_outer, x_inner, y_inner, tile_index;
A0.tile(x, y, x_outer, y_outer, x_inner, y_inner, 4, 4);
Value.compute_at(A0, x_outer);
Halide::Buffer<float> N = A0.realize(16, 16);
можно ли это запланировать?