簡體   English   中英

CUDA cudaMemcpyAsync 使用單個 stream 到主機

[英]CUDA cudaMemcpyAsync using single stream to host

我有一個 kernel ,它使用單個stream 感受兩個參數(dev_out_1 和 dev_out_2)的數據。 我想將設備中的數據並行復制回主機 我的要求是使用單個 stream 並並行復制回主機。

您如何處理此類問題?

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);

我想將設備中的數據並行復制回主機

這是不可能的。

NVIDIA GPU 只能使用一個 DMA 引擎進行設備到主機的傳輸(即使在有多個 DMA 引擎的情況下),並且 DMA 引擎一次只能執行一次傳輸。 因此,不可能通過 PCI Express 總線在同一方向上進行“並行”復制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM