【发布时间】:2015-02-16 18:34:17
【问题描述】:
我有某种过滤内核,像这样:
__kernel void filterKernel (__global float4 *filter, __global float4* in_array, __global float4* out_array)
{
...
out_array[tid] = in_array[tid] * filter[fid];
...
}
kernel filterKernel被调用多次(约1000次)。
变量 filter 是一个浮点数组,从不改变它的值(对于所有工作组和所有内核调用都保持相同)。
in_array 包含 32768 个浮点数。
这个变量filter的最佳声明是什么? __持续的? __当地的?也许在这里和那里放置一个“const”?什么对编译器帮助最大?是什么让代码最快?
【问题讨论】:
-
您的问题得到解答了吗?如果是,请接受答案。
标签: memory constants local opencl