问题标签 [halide]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
903 浏览

halide - GPU的卤化物交叉编译

我想在 GPU 上运行卤化物代码。有一个关于如何在 GPU 上运行以及如何进行交叉编译的教程示例。但是,没有将交叉编译与在 GPU 上运行相结合的教程。

我尝试过与交叉编译教程中的方法相同的方法。但我不确定目标的配置。

我在 Ubuntu 中开发在虚拟机上运行的代码,而主机操作系统是 Windows。这就是为什么我需要进行交叉编译才能在 GPU 上运行。

是否支持?

0 投票
1 回答
449 浏览

visual-studio-2015 - Halide 在 VS 2015 Express 中使用 libpng 加载 png 图像时出错

当我尝试load_image在 Halide 中调用函数时,出现错误“init_io 期间出错”。调试显示错误在load_png起作用。

这是调用者函数

环境。

  1. 视觉工作室 2015
  2. Libpng 1.2.35
  3. zlib 1.2.11
  4. Windows 7的

我已经尝试过这个解决方案,但它没有帮助。 libpng:写入 png 失败:在标头写入错误处停止

任何想法?

0 投票
1 回答
206 浏览

halide - 使用 const global 使用 OpenCL 进行卤化物* 限制参数?

在 OpenCL 中,当我们将输入参数指定为 const global * restrict 时,我们得到了一个有效的硬件路径(对于一段手写的 OpenCL 代码):

然而,正如HL_DEBUG_CODEGEN=1卤化物所见,生成:

其中输入参数未声明restrict。我希望这会真诚地限制性能。我确实让 Halide 添加了指针受到限制的概念(它们使用的缓冲区没有别名。)

0 投票
1 回答
1322 浏览

c++ - 从 RGB 到 YUV 的颜色转换 (YCoCg)

我正在尝试实现Func输出到 3 个单独缓冲区的颜色转换。该rgb_to_ycocg函数有一个 4x8 位通道交错缓冲区 (BGRA) 和 3 个输出缓冲区(Y、Co 和 Cg),每个缓冲区都是 16 位值。目前,我正在使用这段代码:

问题是,与参考实现(c 中的基本 for 循环)相比,我的性能很差。我知道我需要尝试更好的调度,但我认为我在输入/输出缓冲区方面做错了。我看过教程并试图想出一种输出到多个缓冲区的方法。使用 aPipeline是我能找到的唯一方法。Func制作 3 s 并单独调用它们会更好吗?这是对Pipeline类的正确使用吗?

0 投票
1 回答
331 浏览

c++ - 在 Mac OS 上编译 Halide 的 camera_pipe 应用程序时出现问题

我是 Halide 的新手,刚刚从源代码成功编译了 Halide。我想从源代码( https://github.com/halide/Halide/tree/master/apps/camera_pipe )中试用 camera_pipe 应用程序,但我收到以下错误,我不确定如何调试/修复它。提前感谢您的任何建议或帮助!

我的系统正在运行 Mac OS Sierrar (10.12.3)

这是 Makefile 运行的命令:

这是我得到的错误输出:

0 投票
1 回答
187 浏览

halide - Halide 中的高效聚集内存访问

假设我想在两个图像之间进行操作(例如加法),其中图像 Img1 中的每个像素在图像 Img2 中都有一个对应的像素。对应向量存储在元组 Delta 中。基本上,是这样的:

Img(x, y) = Img1(x, y) + Img2(x + Delta[0](x, y), y + Delta[1](x, y));

这是一个内存收集操作。在 Halide 中描述这种模式的最佳方法是什么?如何安排它?

0 投票
1 回答
670 浏览

shared-libraries - 用于 OpenCL 的 Halide AOT 可作为静态库正常工作,但不能作为共享对象

我尝试将下面的代码编译为静态库和目标文件:

在静态链接的情况下,一切正常,输出结果正确:

但是当我尝试将对象文件链接到共享对象时,

并从代码中打开它(Ubuntu 16.04),

我收到CL_INVALID_MEM_OBJECT错误。这是调试日志:

非常感谢您的帮助!提交状态c7375fa。如果有必要,我很乐意提供额外的信息。

0 投票
1 回答
62 浏览

c++ - 在从函数返回的 Func 中设置输入

我有一个返回 a 的函数,Func我想设置定义为ImageParams 的输入缓冲区。我似乎无法从github存储库中找到使用此类功能的教程/测试。我可以使用生成器在 AOT 中进行编译,然后将另一个程序链接到它,但我确信在同一个实例中有一种更快的方法可以在不重新编译的情况下做到这一点……我似乎找不到正确的方法!

这是我使用的一段代码:

编辑:我找到了一个“解决方法”,这意味着我将引用ImageParam作为输出参数传递,如下所示:

但这看起来像作弊不是吗?如果可能的话,我真的很想从Func自身中提取输入参数......

0 投票
1 回答
142 浏览

c++ - 将值输出到不同大小的缓冲区

我需要将 2 个值输出到不同大小的缓冲区。一个与输入的大小相同,另一个是宽度的一半和高度的一半。我想过使用元组,但我超出了界限,因为它正在迭代输入大小。这是一个简单的例子:

元组不是解决这个问题的正确方法吗?

0 投票
2 回答
531 浏览

halide - 如何可视化 Halide 相机管道/生成 Halide 如何编译的 HTML 输出?

我尝试将以下行添加到 camera_pipe_generator.cpp的底部以输出 Halide 如何编译成 .html 文件,但我不确定我做错了什么:

我认为我的第二个论点是错误的,但是我应该在这里传递什么?

或者我有什么不同的方式来可视化日程安排?这篇文章似乎表明存在 Halide 的可视化工具。有没有关于如何使用它的资源?

谢谢!

编辑:我试过运行命令

但是,这导致了以下错误:

我认为这可能与在 mac OSX 10.12.3 上运行有关?

最终编辑:在 gengen.sh 文件中添加了选项“-lcurses”,它起作用了!