halide

    0热度

    1回答

    是否可以从生成器类中的数组初始化Func?代码应该看起来像这样。 class SobelConv: public Halide::Generator<SobelConv> { const signed char kernelx[3][3] = { {-1, 0, 1}, {-2, 0, 2}, {-1, 0, 1} }; void generate() {

    0热度

    1回答

    我正在使用Halide作为C++代码库的某些部分。我有一个AoT编译函数,它计算一个Tuple-valued Func,所以它被编译为buffer_t结构,作为之前函数的输入(现在编译为halide_buffer_t)。在我调用库.cpp文件,如下我定义这些buffer_t值: result1.host = (uint8_t*)result_cpp_array; result1.elem

    0热度

    1回答

    函数我试图定义一个函数来使用卤化物生成掩码图像。 有一个缓冲 Buffer<int> bounding_box; bounding_box(0, 0) = min_x0; bounding_box(0, 1) = max_x0; bounding_box(0, 2) = min_y0; bounding_box(0, 3) = max_y0; bounding_box(1, 0) = m

    1热度

    1回答

    我想在SIGGRAPH'16发表的论文中重新检查有关GPU自动调度的实验。 我使用auto-scheduler分支编译了下面的代码,但生成的代码是为CPU预定的。 如何使用自动调度程序为GPU生成时间表? #include "Halide.h" #include "HalideBuffer.h" #include <climits> #include <iostream> using n

    1热度

    2回答

    我有其具备以下的输出尺寸3个卤化物功能: 40×40×64 40×40×128 40×40×64 我希望将它们组合成一个单一的函数,以便我得到一个函数句柄供以后使用。所以在这里,所产生的功能应该有 40×40×256 维我使用Halide::select但它导致了4名维 concat(x,y,z,c)=Halide::select(c == 0, func_1(x, y, z), c == 1,

    0热度

    1回答

    这种类型的代码将是一个有效的单线程调度? 我想定义模糊,但在AOT中的可变内核大小。我尝试了https://github.com/halide/Halide/issues/180解决方案,但我无法找到一个安排它的好方法,它可以让我获得与使内核大小为GeneratorParam并预编译不同值的性能相同的性能。 这里是与GeneratorParam片段: // GeneratorParam<int32

    1热度

    1回答

    我试图通过mat.at(i,j)将缓冲区图像转换为opencv mat,但它运行了20 ms。它太慢了。如何提高速度?或另一种方法将缓冲区图像转换为cv :: Mat ? Halide::Func gray; Halide::Var x, y; gray(x, y) = Halide::cast<uint8_t>(0.299f * image(x, y, 0) +0.587

    0热度

    1回答

    我得到了一个函数f(x,y,z),其值为1和0,并且我需要获得等于值的前100个坐标到1,减少/更新到0. 这是非常简单的实现在C和其他语言,但是,我一直在试图解决它与卤化物几天。是否有任何函数或算法可用于在Halide Generator中解决它?

    0热度

    1回答

    我一直试图通过halide重新创建一个手动调整的c函数。这是在源图像的垂直扫描线上完成的一系列直方图。因此,我使用1维RDom来迭代源图像。 RDom reductionY(0, input.height()); parade(x,y,c) = Halide::cast<uint16_t>(0); parade(x, input(x, reductionY, c), c) +

    0热度

    2回答

    我试图将resize app从halide存储库中从内联声明转换为生成器。一切似乎都做工精细,除了这一点: Func clamped = BoundaryConditions::repeat_edge(input);` 在原代码,input声明像这样ImageParam input(Float(32), 3)。在我的发生器中,我将它翻译为:Input<Func> input { "input"