cudaMemcpy可以接受来自设备的变量作为其参数吗?

cudaMemcpy可以接受来自设备的变量作为其参数吗?,cuda,gpu,nvidia,Cuda,Gpu,Nvidia,其中filesize是存储在设备全局内存中的变量。简单的答案是否 参数通过值传递,这意味着该值必须在宿主代码中已知。因此,您应该第一次调用cudaMemcpy()来获取大小,第二次调用cudaMemcpy()来执行实际的复制 如果您使用的是推力向量,您可以读取主机代码中的元素,但这是因为推力为您处理副本。filesize是一个size\u t,而不是指针。该值是从堆栈(主机内存)读取的,所以我想通过这个API是不可能的。(可能根本不可能) cudaMemcpy(dst, src, filesiz

其中
filesize
是存储在设备全局内存中的变量。

简单的答案是否

参数通过值传递,这意味着该值必须在宿主代码中已知。因此,您应该第一次调用cudaMemcpy()来获取大小,第二次调用cudaMemcpy()来执行实际的复制


如果您使用的是推力向量,您可以读取主机代码中的元素,但这是因为推力为您处理副本。

filesize
是一个
size\u t
,而不是指针。该值是从堆栈(主机内存)读取的,所以我想通过这个API是不可能的。(可能根本不可能)
cudaMemcpy(dst, src, filesize, cudaMemcpyDeviceToHost);