我正在开发一个XCode Opencl项目(针对VRP问题的ACO)。内核在CL_DEVICE_TYPE_CPU
上运行良好,但是当我使用CL_DEVICE_TYPE_GPU
时,Xcode无法执行此项目,错误如下:
errors pic
我的平台是Intel HD Graphics 5000 1536 MB
。我不知道为什么会这样。有什么我错过了额外的GPU配置吗?
然后我尝试了一个非常简单的Opencl示例项目,我发现它在CPU和GPU上运行良好。我的内核(ACO for VRP问题)有点复杂,有一些全局和私有内存(不超过10M)。
如果有人能给我一些建议,我将非常感激。
然后我在CL_DEVICE_TYPE_GPU
上尝试了一个非常简单的内核。这是内核。
__kernel void exchange(int M)
{
int i, k, t;
double help[M], b;
for (k = 0; k < M; k++) {
help[k] = 0;
}
for (i = 0; i < 5; i++) {
b = help[0];
t = 0;
for (k = 0; k < M; k++) {
if (help[k] < b) {
b = help[k];
t = k;
}
}
// --- help[i] = 1 OR help[k] = 1 OR just comment this line ---
help[t] = 1; //! error comes there
}
}
Xcode再次无法编译它。似乎错误来自此行help[t] = 1;
。如果此行替换为help[i] = 1;
或help[k] = 1;
或仅注释,则此内核将起作用。有谁能解释为什么?谢谢!