考虑下面的代码CUDA:异步数据传输CUDA
CudaMemCpyAsync(H2d, data1...., StreamA);
KernelB<<<..., StreamB>>>(data1,...);
CudaMemCpyAsync(D2H, output using data1, ...., StreamA);
何时 “CudaMemCpyAsync(D2H .....,StreamA);”在代码开始?在KernelB执行结束后开始执行吗?我是否替换“CudaMemCpyAsync(D2H .....,StreamA);”与“CudaMemCpy(D2H .....,StreamA);”如果我必须将KernelB的输出复制回主机?
另外,固定的内存使用量在异步数据传输中是绝对必需的吗?
在此先感谢。