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

标签 cuda gpu nvidia

cudaMemcpy(dst, src, filesize, cudaMemcpyDeviceToHost);

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

最佳答案

简单的答案是否定的。

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

如果您使用 Thrust 向量,您只需读取主机代码中的元素,但这是因为 Thrust 会为您处理副本。

关于cuda - cudaMemcpy 可以接受来自设备的变量作为其参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18402933/

相关文章:

c++ - CU_CTX_SCHED_BLOCKING_SYNC 是否使内核同步?

cuda - Thrust 如何知道如何自动配置它启动的内核?

cuda - nvidia-smi 是如何工作的?

c++ - 在 nVidia Optimus 中以编程方式选择集成显卡

Bash 脚本将 nvidia 元模式设置为变量名而不是变量

gcc - GCC 中的 OpenMP 4.0 : offload to nVidia GPU

c++ - void* 指针的指针运算

CUDA 5 与 CUDA 4 兼容

python - 为什么重新创建 JAX numpy 数组并将其重新分配给相同的变量名称时 GPU 内存会增加?

tensorflow - 如何自动选择批量大小以适合 GPU?