我是 CUDA 编程的新手,由于性能原因,我主要使用每个块的共享内存。我的程序现在的结构方式是,我使用一个内核加载共享内存,另一个内核读取预加载的共享内存。但是,据我了解,共享内存不能在两个不同的内核之间持续存在。
我有两个解决方案;我不确定第一个,第二个可能很慢。
第一个解决方案:我不使用两个内核,而是使用一个内核。加载共享内存后,内核可能会等待主机的输入,执行操作,然后将值返回给主机。我不确定内核是否可以等待来自主机的信号。
方案二:加载共享内存后,将共享内存值复制到全局内存中。当下一个内核启动时,将值从全局内存复制回共享内存,然后执行操作。
请评论这两种解决方案的可行性。