OpenCL工作项目排序

时间:2015-10-28 16:48:54

标签: opencl gpu cpu nvidia atomicity

使用OpenCL 1.1,是否可以强制工作项目对其执行进行排序,以便等到优先级较高的项目完成?

我已尝试过各种实现,并且在GPU(Nvidia OpenCL 1.1)上执行内核时似乎总是卡住;虽然在CPU上运行很好。

我最近的尝试将挂在GPU上。我怀疑是GPU正在分裂本地组中的全局工作组,这些组被暂停导致死锁。我通常运行一个全局大小,是我本地大小的几倍,这对于扩大我的计算非常重要。

kernel void ordered_workitem_kernel(
    global uint *min_active_id_g
) {
    uint i = get_global_id(0);
    min_active_id_g[0] = 0;
    barrier(CLK_GLOBAL_MEM_FENCE);

    while (i >= min_active_id_g[0]) {

        // do something interesting here

        if (i == min_active_id_g[0])
            atomic_inc(&min_active_id_g[0]);
    }
}

或许还有更好的方法吗?有什么建议吗?

0 个答案:

没有答案