我用Openmp将循环展开,主机端一共创建了四个线程,每个线程创建并启动了一条流,但是性能分析的时候发现,四条流是串行执行的,预期应该是会并行的啊,显卡是GTX760。还请帮忙分析一下原因
LZ您好:
1:您需要在host端申请page-locked memory。
2:需要使用异步版本的copy函数,cudaMemcpyAsync()。
3:请不要使用默认stream上的操作,以免受到隐含的同步的影响。
4:请小心使用cudaDeviceSynchronize()等同步函数。
此外,请尽量使用tesla卡进行测试,在geforce系列GPU上,可能无法达到您的预期异步行为。
大致如此,祝您好运~