我有一个可以在我的笔记本电脑 CPU (i5-3427U) 上完美运行的内核。我现在正试图让它在内置 GPU (HD 4000) 上运行。
完整的错误在这里,但我不能做太多。现在(在我看来)奇怪的部分是以下内容无法构建:
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]);
}
这里发生了什么?
完整的内核粘贴在这里。操作系统是 64 位 OS X 10.9.2。我尝试以其他方式处理底部的 3 个循环,但未成功。该问题似乎与访问其中的任何内容distances
或调整其中的值有关,dist_histogram
但我不明白为什么我发布的第一个示例无法构建。