Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cuda流创建是否会导致数据争用情况?_Cuda_Openmp_Nvidia_Race Condition - Fatal编程技术网

cuda流创建是否会导致数据争用情况?

cuda流创建是否会导致数据争用情况?,cuda,openmp,nvidia,race-condition,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

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

考虑到以下准则:

#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);

};
#pragma omp并行num_线程(4)
{
int threadId=omp_get_thread_num();
cudaSetDevice(线程ID);
cudaStream_t streams[20];

对于(int i=0;i您是否测试过以串行方式创建cudaStreams?您可以先以串行方式创建cudaStreams,然后并行化所需的代码。

您不能只注释掉pragma,看看问题是否仍然存在吗?:)此外,创建流应该很少发生——不需要并行运行。