halide相关内容

卤化“选择"而不评估两个参数

您可以知道是否尝试过Halide select(x,y,z);与C ++上的三元运算符类似,其中x是条件y(如果为true)和z(如果为false). 想象一下y只是返回0并且z是一个真正昂贵的函数,可以跳过对x为假的z的求值,不幸的是,即使我设置了select(x,likely(y),z);或至少发生在我使用compile_to_file(.h + .lib) 的情况下 对此有任何想法 ..
发布时间:2021-04-23 20:52:03 C/C++开发

卤化物:滤除矢量中的元素(卤化物:: Runtime :: Buffer)

我有一个Halide::Runtime::Buffer,并且希望删除符合条件的元素,理想情况下,该操作应就地进行并且可以在Halide::Generator中定义该函数. 我已经研究过使用归约法,但是在我看来,我无法输出不同长度的向量-我只能将某些元素设置为我选择的值. 到目前为止,我使用它的唯一方法是使用extern "C"调用并传递我要过滤的缓冲区,以及一个布尔型缓冲区(以整数表示 ..
发布时间:2020-06-17 19:22:18 其他开发

卤化物:减少特定值的范围

我得到一个函数f(x,y,z),其中值是1和0,并且我需要获取等于1的值的前100个坐标,以将它们减少/更新为0 使用c语言和其他语言来实现非常简单,但是,我已经尝试使用Halide解决了几天.在卤化物发生器中有什么函数或算法可以用来解决它? 解决方案 问题在于“如何在Halide中实现流压缩?"关于并行流压缩有很多文章,要做得好一点也不平凡.请参阅有关在cuda中执行此操作的Sta ..
发布时间:2020-06-17 19:22:16 其他开发

输出在模板匹配中发生了偏移

我正在尝试创建一个模板匹配程序,该程序使用以下公式确定模板和图像之间的适合度: 我的代码如下: Halide::Var x, y, xt, yt; Halide::RDom r(0, t.width(), 0, t.height()); Halide::Func limit, compare; limit = Halide::BoundaryConditions::constant_e ..
发布时间:2020-06-17 19:22:13 其他开发

Halide :: GPU上的缓冲区

我已经有一个应用程序来获取输入图像,将其复制到GPU,然后将某些CUDA过滤器应用于该图像.因此,当我想实现一个新的过滤器时,我只编写过滤器本身(即内核),因为CPU-GPU复制逻辑已经存在. 现在,我想尝试使用Halide为CUDA编写图像过滤器,并且遇到一个问题,即代表输入图像的Halide :: Buffer在CPU上分配了,因此我必须更改现有的复制逻辑. 有什么方法可以使用GP ..
发布时间:2020-06-17 19:22:11 C/C++开发

LUT是否有任何限制:尺寸无限制

当尝试运行下面的示例代码(类似于查找表)时,它总是生成以下错误消息:“函数'out'的纯定义以维度0的方式来无限制地调用函数'color'" RDom r(0, 10, 0, 10); Func label, color, out; Var x,y,c; label(x,y) = 0; label(r.x,r.y) = 1; color(c) = 0; color(label(r.x,r ..
发布时间:2020-06-17 19:22:08 其他开发

在没有define_extern函数的情况下在Halide中实现Canny算法的滞后步骤的困难

问题在于,当标记为弱边缘的像素(在两个阈值之间)变为强边缘(接受时,如在命令式语言中,当从弱边变为强边时,可以使用堆栈来存储位置(x,y).然后,最后,在堆栈不为空的情况下处理邻居,并根据需要更新堆栈.但是,如何在没有define_extern函数的情况下在纯Halide中实现任何类似的功能? 我已使用此代码进行磁滞,但是缺少动态递归和/或堆栈,以便在需要时对邻居执行磁滞,这是我找不到的实现 ..
发布时间:2020-06-17 19:22:06 其他开发

如何可视化卤化物时间表?

如何可视化诸如此视频的卤化物时间表? HalideTraceViz在卤化物存储库中具有 viz.sh 想象一下. 但是 viz.sh 生成的camera_pipe.avi只是大约10秒钟内只显示黑色.这是使用mplayer播放.avi文件时的日志. $ mplayer bin/camera_pipe.avi MPlayer 1.1-4.8 (C) 2000-2012 MPlayer Tea ..
发布时间:2020-06-17 19:22:04 其他开发

C ++数组Halide图像(和背面)

我开始使用Halide,虽然我掌握了它的设计的基本原则,但我正在努力处理有效地计划计算所需的细节(read:magic)。 我在一个使用Halide的MWE下面发布了一个将数组从一个位置复制到另一个位置。我假设这将编译下来只有一些指令,并采取小于1微秒运行。相反,它产生4000行的汇编,需要40毫秒运行!因此,在我的理解中,我有一个重要的洞。 在 Halide :: Image ? ..
发布时间:2016-11-01 09:27:37 C/C++开发