【发布时间】:2015-08-07 02:25:03
【问题描述】:
我在 stackoverflow 中发现了一些关于这个问题的问题。但我还是想问一下,以防专家们在这个问题上找到了新的理论和解释。
我测试并发现对于基本的 1D 内核:
// global size = {1024*1024, 1, 1}
// local size = {32, 1, 1}
// x, y, z are float
int i = get_global_id(0);
x[i] = y[i] + z[i];
将比 2D 内核慢得多:
int i = get_global_id(0);
int j = get_global_id(1);
int index = i + j * width;
x[index] = y[index] + z[index];
谁能帮我解释一下,谢谢。
【问题讨论】:
-
您测试的工作组规模和全球规模是多少? x、y 和 z 的类型是什么——我假设是 int?