Opencl - 无法在GPU上运行内核

时间:2016-11-11 07:24:07

标签: xcode opencl gpu cpu

我正在开发一个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;或仅注释,则此内核将起作用。有谁能解释为什么?谢谢!

0 个答案:

没有答案