cuda流创建会导致数据竞争条件吗?

时间:2013-11-22 21:54:52

标签: cuda openmp nvidia race-condition

我现在正在调试一个项目,仍然没有弄清楚哪个部分是错误的,但是我怀疑在创建流时出现了竞争条件:

考虑以下代码:

#pragma omp parallel num_threads(4)
{

  int threadId = omp_get_thread_num();

  cudaSetDevice(threadId);

  cudaStream_t streams[20];

  for (int i=0; i<20; ++i) cudaStreamCreate(streams+i);

};

这会导致潜在的竞争条件,例如:不同的线程在不同的设备ID上创建具有相同流ID的流?

1 个答案:

答案 0 :(得分:1)

您是否测试过以串行方式创建cudaStream?您可以先串行创建cudaStream,然后并行化所需的代码。