考慮下面的代碼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的輸出複製回主機?
另外,固定的內存使用量在異步數據傳輸中是絕對必需的嗎?
在此先感謝。