pyOpenCL在GPU上构建程序失败

时间:2014-04-16 20:47:08

标签: gpu pyopencl

我的内核在我的笔记本电脑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中的值有关,但我不明白为什么我发布的第一个示例无法构建。

1 个答案:

答案 0 :(得分:2)

鉴于构建日志的性质以及相同代码在其他设备上构建得很好的事实,这几乎肯定是Apple的OpenCL实现的一个错误。他们针对英特尔集成显卡系列的OpenCL实现仍然相当不成熟,很多人都发现了它的各种问题(包括我自己)。

我建议制作一个最小的代码示例,用于再现问题并使用Apple Bug Reporter进行报告。