CUDA CUDAMEMCPIASYNC使用单流到主机

CUDA CUDAMEMCPIASYNC使用单流到主机,cuda,cuda-streams,Cuda,Cuda Streams,我有一个内核,它使用单流将数据感测到两个参数(dev_out_1和dev_out_2)。我想并行地将数据从设备复制回主机。 我的要求是使用单流并并行地复制回主机 您如何处理此类问题 SomeCudaCall<<<25,34>>>(input, dev_out_1,dev_out_2); cudaMemcpyAsync(toHere_1, dev_out_1, sizeof(int), cudaMemcpyDeviceToHost,0); cudaMemcpyA

我有一个内核,它使用单流将数据感测到两个参数(dev_out_1和dev_out_2)。我想并行地将数据从设备复制回主机。 我的要求是使用单流并并行地复制回主机

您如何处理此类问题

SomeCudaCall<<<25,34>>>(input, dev_out_1,dev_out_2);
cudaMemcpyAsync(toHere_1, dev_out_1, sizeof(int), cudaMemcpyDeviceToHost,0);
cudaMemcpyAsync(toHere_2, dev_out_2, sizeof(int), cudaMemcpyDeviceToHost,0);

SomeCudaCall(输入、开发输出1、开发输出2);
cudaMemcpyAsync(toHere_1,dev_out_1,sizeof(int),cudaMemcpyDeviceToHost,0);
cudaMemcpyAsync(toHere_2,dev_out_2,sizeof(int),cudaMemcpyDeviceToHost,0);
我想并行地将数据从设备复制回主机

这是不可能的

NVIDIA GPU只能使用一个DMA引擎进行设备到主机的传输(即使在有多个DMA引擎的情况下),并且DMA引擎一次只能执行一次传输。因此,不可能通过PCI express总线在同一方向上进行“并行”拷贝

我想并行地将数据从设备复制回主机

这是不可能的

NVIDIA GPU只能使用一个DMA引擎进行设备到主机的传输(即使在有多个DMA引擎的情况下),并且DMA引擎一次只能执行一次传输。因此,不可能通过PCI express总线在同一方向上进行“并行”拷贝