请教,共享内存和全局内存数据传输函数?

内存和显存(全局内存)之间提供了好几个不同版本的数据传输函数,

共享内存和全局内存数据传输函数除了memcpy外,有没有相应的cuda函数?

楼主您好,
CUDA和OpenCL不同,没有提供特殊的global memory → shared memory的传输函数。
(其实你不需要的)。

以及,请不要使用kernel中的memcpy, 强烈建议自己用指针读取了,然后再写入。

内置的memcpy的效率非常非常低。

感谢您的周末来访。

非常感谢指导。

是不是就只能一个变量一个变量用循环来读取再写入了呢?

memcpy的效率为什么还不如自己直接用指针读取呢?怎么说也是系统提供的函数,应该比手工读取效率高才对啊。

LZ您好:

1:您可以在kernel中使用一组线程来完成对shared memory的初始化写入赋值。

2:建议您在kernel内使用一组线程来完成数据复制,而不要使用memcpy()。后者的实现并不是很高效,而只是作为一种方便使用(而不是以效能为目的)的辅助手段存在的。

大致如此,祝您编码顺利~