memory - cudaMemcpy 传输种类 : Default vs HostToDevice/DeviceToHost

标签 memory cuda nvidia

cudaMemcpy允许程序员明确指定内存传输的方向。

手动指定内存传输方向( cudaMemcpyDeviceToHost/cudaMemcpyHostToDevice/cudaMemcpyDeviceToDevice )而不是让 cuda 从指针值自动推断( cudaMemcpyDefault )有什么好处?

最佳答案

tl;dr:几乎可以肯定没有优势。cudaMemcpyDefault当 GPU 开始能够通过检查地址(“统一虚拟寻址”)轻松识别内存空间时,添加了 IIRC。在此之前,您必须指定方向。例如,参见 CUDA 3 文档,可访问 here .在 API 引用中查找 cudaMemcpyKind - 没有默认值,只有 H2H、H2D、D2H 和 H2H。
当这种情况发生变化时,我想 nVIDIA 不重载函数或以不同的方式命名它是有意义的,而只是为新功能添加不同的常量值。
我不是 100% 确定没有区别,只是非常合理;从轶事个人经验来看,我没有看到任何优势/差异。当然,复制速度并不快。

关于memory - cudaMemcpy 传输种类 : Default vs HostToDevice/DeviceToHost,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55475630/

相关文章:

r - 内存分配 R 服务 SQL Server 2016

c++ - 为 std::vector 分配几 GB 内存

cuda - nvcc 致命 : Cannot find compiler 'cl.exe' in PATH although Visual Studio 12. 0 添加到 PATH

c++ - CUDA 流破坏和 CudaDeviceReset

python - 将大 csv 列从字符串转换为 float 时出现 pandas 内存错误

memory - 在以太坊 Solidity 中, "memory"关键字的用途是什么?

c++ - CUDA 内核调用中的隐式构造函数

c++ - 用于矩阵加法的 Cuda 程序

image-processing - CUDA 纹理缓存似乎有错误的数据?

python - Kivy OpenGL 部署要求是否可行?