- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否可以在 Halide 中生成包含生成的 OpenCL 代码的文件?我试图从目标是 opencl 的 Halide 程序生成一个 c 文件,但我在那里没有看到任何 opencl 特定代码。
编辑1:
我特别想看看内核是如何在 Halide 中创建的。像这样的东西:static char
kernelSourceCode[] =
kernel void test_kernel(int a, int b, __global int *out)
{
out[0] = a + b;
}
编辑2:
好的,我将 HL_DEBUG_CODEGEN=1 放入 env 变量并在代码 set_target(Target::Debug) 中设置。我在屏幕上看到一堆代码,其中一些是 OpenCL 代码,但我仍然看不到任何内核特定代码。
屏幕上有两行指示内核。应该有什么?OpenCL kernel:
/*OpenCL C*/
然后还有一行:kernel void _at_least_one_kernel(int x) { }
例如,如果我有这样的功能:gradient(x, y) = x + y;
如果我想以 OpenCL 为目标,该函数是否在内核中?
最佳答案
这是我从 documentation 中设法发现的
默认情况下不启用 CUDA 或 OpenCL。您必须构造一个 Target 对象,启用其中之一,然后将该目标对象传递给 compile_jit。
Target target = get_host_target();
target.set_feature(Target::OpenCL);
curved.compile_jit(target);
compile_to
方法,通过提供正确的目标。
EXPORT void Halide::Func::compile_to(const Outputs & output_files,
std::vector<Argument> args,
const std::string& fn_name,
const Target& target = get_target_from_environment()
)
关于Halide:OpenCL 代码生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28041646/
我有一张二值图像,我想使用 Halide 从图像的顶部开始为每一列找到第一个非零像素。 在 C++ 中,给定名为 mask 的图像,它看起来像这样: vector top_y; top_y.reser
我正在尝试使用增强的生成器类重新实现双边网格示例(例如使用 schedule() 和 generate()。但我在尝试编译代码时遇到错误。 g++ -std=c++11 -I ../../includ
我正在尝试使用增强的生成器类重新实现双边网格示例(例如使用 schedule() 和 generate()。但我在尝试编译代码时遇到错误。 g++ -std=c++11 -I ../../includ
是否可以在 Halide 中生成包含生成的 OpenCL 代码的文件?我试图从目标是 opencl 的 Halide 程序生成一个 c 文件,但我在那里没有看到任何 opencl 特定代码。 编辑1:
我主要是一名非常高级的程序员,因此思考 CPU 局部性等问题对我来说是非常新鲜的。 我正在研究一个基本的双线性去马赛克(用于 RGGB 传感器数据),并且我的算法是正确的(根据结果判断),但它的性能没
我正在尝试为基准 Halide 代码制定最佳时间表,但我可能会遗漏一些东西,因为计时结果对我来说意义不大。 我正在使用 AOT 编译,下面是代码的算法部分: ImageParam input1(typ
我已经尝试用 Halide 编写代码一段时间了,而且我总是自己编写时间表。然后我读了这篇论文:http://graphics.cs.cmu.edu/projects/halidesched/mulla
我想使用 Halide 生成多个输出缓冲区。 Func output; std::vector argsExpr( 4 ); argsExpr[ 0 ] = aOut( x, y ); argsExp
我正在尝试在 Halide 中实现归一化互相关。 下面的代码构建,Halide JIT 编译不会抛出任何错误。但是,Halide 似乎在 JIT 编译后挂起。无论我对不同的 Func 调用了多少次 t
我使用 AOT 编译来使用没有 Halide 库的 Halide 代码。 我在 HalideRuntime.h(在资源中可用)中看到我的 .o 文件中有许多可用的外部方法。 halide_dev_ma
我正在尝试开始使用一种名为 Halide 的用于图像处理的特定领域语言(C++ 扩展) . 在 Halide README 之后,这是我尝试过的: 下载了 Ubuntu 12.04 Halide bi
我正在尝试在 Halide 中实现 Meijster 距离变换算法。我已经重写了 this code到 C++(使用 openCV)并且工作正常。关于该算法的论文是here .现在我的 Halide
现在我正在尝试编写一些对图像进行子采样的 Halide 代码。基本上我希望图像的每 2 x 2 平方减少到一个包含最大值的像素。一个简单的例子是转换 1 2 3 4 5 6 7 8 9 0 1 2 4
是否有适用于使用 Halide 语言编写的代码的性能计数器?我想知道我的代码执行了多少加载、存储和 ALU 操作。 用于调度多阶段管道的 Halide 教程通过比较分配的内存量、加载、存储和对 hal
尝试加载灰度图像png格式以执行此代码时出现错误。我的程序是Halide Tutorial类(class)2的一部分。这是我的代码: #include #include "Halid
我正在尝试学习Halide,但我无法正确使用GPU,因为在安排GPU时它会生成黑色图像。对于CPU而言,它会产生良好的结果(注释掉brighter.gpu_tile(x,y,xo,yo,xi,yi,8
我正在尝试运行找到的 Halide FFT 实现 here用于针对 FTTW 进行基准测试。我能够按原样运行实现,但在深入挖掘时遇到了一些问题。该例程因 H 和 W 的不同值(随机输入图像的高度和宽度
我正在尝试将我的 Halide 程序编译为 jit,以便稍后在不同图像的代码中多次使用它。但是我想我做错了什么,有人可以纠正我吗?首先,我创建要运行的 Halide 函数: void m_gammaF
我正在尝试更改实现的缓冲区布局。我知道 Halide 的目的是允许“一次”定义算法,然后能够分别更改调度和存储布局等内容。 我已经尝试过 my_output_function.reorder_stor
几周来我一直在探索 Halide 的可能性,为了更好地了解 Halide 的作用,我想尝试使用 halide 分析器。假设我有一个 Func 测试。 (为了便于阅读,我省略了变量声明等。)f=函数(测
我是一名优秀的程序员,十分优秀!