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