我正在使用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进行测试时。我得到了:分段错误。有了这个错误,我不知道为什么会出现问题。
您注意到了什么吗?
提前致谢
答案 0 :(得分:0)
我在线程之间添加了一个互斥锁,它可以工作。我不知道为什么会这样...