2
cudaMemcpy(dst, src, filesize, cudaMemcpyDeviceToHost);
其中filesize
是存儲在設備全局存儲器中的變量。can cudaMemcpy是否接受來自設備的變量作爲它的參數?
cudaMemcpy(dst, src, filesize, cudaMemcpyDeviceToHost);
其中filesize
是存儲在設備全局存儲器中的變量。can cudaMemcpy是否接受來自設備的變量作爲它的參數?
簡單的答案是否定的。
該參數是通過值傳遞的,這意味着該值必須在主機代碼中已知。因此,您應該先調用cudaMemcpy()來獲取大小,然後再調用cudaMemcpy()來執行實際副本。
如果您使用的是Thrust矢量,您可以只讀主機代碼中的元素,但這是因爲Thrust會爲您處理副本。
'filesize'是一個'size_t',它不是一個指針。該值是從堆棧(主機內存)讀取的,所以我猜這不可能通過* this * API。 (也許根本不可能) – Michael