内存和显存(全局内存)之间提供了好几个不同版本的数据传输函数,
共享内存和全局内存数据传输函数除了memcpy外,有没有相应的cuda函数?
内存和显存(全局内存)之间提供了好几个不同版本的数据传输函数,
共享内存和全局内存数据传输函数除了memcpy外,有没有相应的cuda函数?
楼主您好,
CUDA和OpenCL不同,没有提供特殊的global memory → shared memory的传输函数。
(其实你不需要的)。
以及,请不要使用kernel中的memcpy, 强烈建议自己用指针读取了,然后再写入。
内置的memcpy的效率非常非常低。
感谢您的周末来访。
非常感谢指导。
是不是就只能一个变量一个变量用循环来读取再写入了呢?
memcpy的效率为什么还不如自己直接用指针读取呢?怎么说也是系统提供的函数,应该比手工读取效率高才对啊。
LZ您好:
1:您可以在kernel中使用一组线程来完成对shared memory的初始化写入赋值。
2:建议您在kernel内使用一组线程来完成数据复制,而不要使用memcpy()。后者的实现并不是很高效,而只是作为一种方便使用(而不是以效能为目的)的辅助手段存在的。
大致如此,祝您编码顺利~