改善OpenCL中的内存访问时间

时间:2014-10-30 11:37:40

标签: opencl pyopencl

对于全局内存中的数组X,我需要在每个内核执行中写入两个值。

X[p]=mul1+mul2;
X[p+a]=mul1-mul2;

这里' a'范围从0到非常高的值。我观察到这两个写入在很大程度上减缓了我的内核。

  1. 在OpenCL中提高内存写入性能的最佳方法是什么?
  2. 合并内存写入仅适用于内核内写入吗?

1 个答案:

答案 0 :(得分:0)

假设p与您的线程ID线性相关,那么您正在以正确的方式做事。您可以尝试将X+a作为第二个参数传递给内核,而不是Y[p]=mul1-mul2;,但我怀疑它会更快。 关于你的第二个问题,如果你想要有两个内核,一个执行添加,另一个减法并同时启动它们,你不能确定它们将并行运行。我再次怀疑它最终会更快。