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,看看问题是否仍然存在吗?:)此外,创建流应该很少发生——不需要并行运行。