openMP与cuda在另一个gpu而不是0中运行时给出分段错误

时间:2011-10-27 19:20:12

标签: openmp cuda

我正在使用cuda并使用openMP进行并行线程化:

#pragma omp parallel
{
    unsigned int cpu_thread_id = omp_get_thread_num();
    cudaSetDevice(cpu_thread_id);

    if(cpu_thread_id==0) 
    {
        // call kernel function
    }
}

它始终与cpu_thread_id = 0一起工作,即使我有4 gpus。所以当我将cpu_thread_id更改为另一个数字1,2和3进行测试时。我得到了:分段错误。有了这个错误,我不知道为什么会出现问题。

您注意到了什么吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

我在线程之间添加了一个互斥锁,它可以工作。我不知道为什么会这样...