相关疑难解决方法(0)

私有内存比本地内存慢吗?

我正在研究一个内核,每个线程都有很多全局内存访问权限,因此我将它们复制到本地内存中,速度提高了40%.

我希望更快的速度,从本地复制到私人,这降低了性能

所以我认为我们不能使用可能会降低性能的私有内存,这是正确的吗?

opencl

13
推荐指数
2
解决办法
7471
查看次数

OpenCL - 本地内存

我确实理解一般的全局和本地内存之间的区别.但我有使用本地内存的问题.

1)通过将全局内存变量转换为本地内存变量需要考虑什么?

2)我如何使用本地障碍?

也许有人可以帮我一个小例子.

我尝试使用本地内存进行jacobi计算,但结果只得到0.也许有人可以给我一个建议.

工作方案:

#define IDX(_M,_i,_j) (_M)[(_i) * N + (_j)]
#define U(_i, _j)     IDX(uL, _i, _j)

__kernel void jacobi(__global VALUE* u, __global VALUE* f, __global VALUE* tmp, VALUE factor) {

int i = get_global_id(0);
int j = get_global_id(1);

int iL = get_local_id(0);
int jL = get_local_id(1);

__local VALUE uL[(N+2)*(N+2)];
__local VALUE fL[(N+2)*(N+2)];

IDX(uL, iL, jL) = IDX(u, i, j);
IDX(fL, iL, jL) = IDX(f, i, j);

barrier(CLK_LOCAL_MEM_FENCE);

IDX(tmp, i, j) = (VALUE)0.25 * ( U(iL-1, jL) + …
Run Code Online (Sandbox Code Playgroud)

c memory kernel opencl

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

标签 统计

opencl ×2

c ×1

kernel ×1

memory ×1