【发布时间】:2014-04-18 19:38:32
【问题描述】:
我有一个可以在我的笔记本电脑 CPU (i5-3427U) 上完美运行的内核。我现在正试图让它在内置 GPU (HD 4000) 上运行。
完整的错误是here,但我无法理解。现在(在我看来)奇怪的部分是以下内容无法构建:
unsigned int dist_histogram[n_bins];
for (i = 0; i < n_bins; i++) {
dist_histogram[i] = 0;
}
for (i = 0; i < n_bins; i++) {
atomic_add(&g_r[i], dist_histogram[i]);
}
但这会构建并运行:
unsigned int dist_histogram[n_bins];
for (i = 0; i < n_bins; i++) {
dist_histogram[i] = 0;
atomic_add(&g_r[i], dist_histogram[i]);
}
这是怎么回事?
完整内核已粘贴here。操作系统是 64 位 OS X 10.9.2。我没有成功地尝试以其他方式弄乱底部的 3 个循环。该问题似乎与访问 distances 中的任何内容或调整 dist_histogram 中的值有关,但我不明白为什么我发布的第一个示例无法构建。
【问题讨论】: