Halide算法描述¶
下面以简单的函数来演示Halide语言的基本数据结构。
函数Func¶
和数学上的函数类似,定义了一个计算过程。复杂的计算过程可以拆成多个小函数来实现。 例子:函数f的每个像素的值是其x和y坐标之和。
f(x, y) = x + y;
例子:多个函数的定义,函数g调用函数f, 函数h调用函数g。
f(x, y) = x + y;
g(x, y) = f(x, y) + 1;
h(x, y) = g(x, y) * 2;
变量Var¶
可以理解为函数的自变量,比如要描述一个图像的像素,需要两个变量x和y来描述 w维度和h维度的坐标。
blur_x(x , y) = (input(x-1, y) + input(x, y) + input(x+1, y))/3;