相关疑难解决方法(0)

如何在OpenCL中使用本地内存?

我最近一直在玩OpenCL,我能够编写只使用全局内存的简单内核.现在我想开始使用本地内存,但我似乎无法弄清楚如何使用get_local_size()和一次get_local_id()计算一个"块"输出.

例如,假设我想将Apple的OpenCL Hello World示例内核转换为使用本地内存的内容.你会怎么做?这是原始的内核源代码:

__kernel square(
    __global float *input,
    __global float *output,
    const unsigned int count)
{
    int i = get_global_id(0);
    if (i < count)
        output[i] = input[i] * input[i];
}
Run Code Online (Sandbox Code Playgroud)

如果这个例子不能轻易转换成显示如何使用本地内存的东西,那么任何其他简单的例子都可以.

opencl

42
推荐指数
3
解决办法
4万
查看次数

有没有办法为共享内存阵列设置默认值?

请考虑以下代码:

__global__ void kernel(int *something) {
extern __shared__ int shared_array[];     

// Some operations on shared_array here.

}
Run Code Online (Sandbox Code Playgroud)

是否可以将整个shared_array设置为某个值 - 例如0 - 而无需在某个线程中明确地寻址每个单元格?

cuda

12
推荐指数
2
解决办法
1万
查看次数

双减少opencl教程

我是OpenCl的新手.

我需要在一维双精度数组上运算减少(求和运算符).

我一直在网上徘徊,但我发现的例子很混乱.任何人都可以发布易于阅读(并且可能有效)的教程实现吗?

附加信息: - 我可以访问一个GPU设备; - 我使用C作为内核代码

sum reduction opencl

3
推荐指数
1
解决办法
4085
查看次数

标签 统计

opencl ×2

cuda ×1

reduction ×1

sum ×1