从本地内存写入全局时,我是否需要本地和全局内存屏障
Do I need both a local and global memory barrier when writing form local memory to global
在我的内核中,每个线程写入本地内存中的一个区域,然后它们
从本地内存复制到全局内存。全局内存永远不会在内核中读取,只能写入。但是,在全局复制完成后,随后将写入本地内存缓冲区。
我在复制代码后是否需要全局内存屏障和本地内存屏障,还是只需要本地内存屏障:
Do I need a global memory barrier as well as a local memory barrier after my copy code, or just a local memory barrier?
视情况而定。没有代码,很难回答你的问题。
In my kernel, each thread writes to a region in local memory, and then they copy from local memory to global memory.
没有看到代码我无法准确回答你的情况,但基本上只有两种情况:
- 工作项从它们写入的同一内存读取(数据不跨工作项共享):内存屏障不需要.
- 从内存中读取的工作项被另一个工作项写入。 (数据在工作项之间共享):需要内存屏障。
Global memory is never read in the kernel, only written to.
那你就不需要全局内存屏障了。当您需要对读者和作者之间的操作进行排序时,就需要障碍。如果没有读者(或没有作者),那么障碍就是多余的。
在我的内核中,每个线程写入本地内存中的一个区域,然后它们 从本地内存复制到全局内存。全局内存永远不会在内核中读取,只能写入。但是,在全局复制完成后,随后将写入本地内存缓冲区。
我在复制代码后是否需要全局内存屏障和本地内存屏障,还是只需要本地内存屏障:
Do I need a global memory barrier as well as a local memory barrier after my copy code, or just a local memory barrier?
视情况而定。没有代码,很难回答你的问题。
In my kernel, each thread writes to a region in local memory, and then they copy from local memory to global memory.
没有看到代码我无法准确回答你的情况,但基本上只有两种情况:
- 工作项从它们写入的同一内存读取(数据不跨工作项共享):内存屏障不需要.
- 从内存中读取的工作项被另一个工作项写入。 (数据在工作项之间共享):需要内存屏障。
Global memory is never read in the kernel, only written to.
那你就不需要全局内存屏障了。当您需要对读者和作者之间的操作进行排序时,就需要障碍。如果没有读者(或没有作者),那么障碍就是多余的。