使用 CL_MEM_READ_WRITE 和 CL_MEM_READ 标志创建的内存读取速度之间的差异

Difference between reading speed from a memory create with CL_MEM_READ_WRITE and CL_MEM_READ flags

在第一阶段的项目中,我生成了一些顶点,然后在第二阶段读取这些顶点,然后创建连接数组。对于我的顶点,我使用了 CL_MEM_READ_WRITE。我想知道如果我在第一阶段使用 CL_WRITE 内存然后将其复制到另一个 CL_READ 内存用于第二阶段,我是否会提高性能?因为可能他们每个人都有自己的优化以获得最大的性能。

可能不会。我预计缓冲区副本的成本远高于任何优化。

此外,我查看了 AMD APP OpenCL 编程指南,但在使用 READ_ONLYWRITE_ONLY 缓冲区时没有发现任何关于优化的指示。

我的理解是,访问标志仅供 OpenCL 运行时使用,以决定何时需要在不同内存之间复制缓冲区数据spaces/areas。

在CL_CREATEBUFER的第二个参数中传递的标志只指定了内核端如何访问内存space。