OpenCL缓冲区大小填充

时间:2013-03-06 19:54:45

标签: memory opencl padding memory-alignment

当我在OpenCL中有一个内存缓冲区时,我知道我需要将其中的数据对齐到一个16字节的边界。

但是,如果我的整个数据(不是数据结构,实际数据集合)例如只有15个字节大,我该怎么办? 我应该把它放入一个16字节的大缓冲区还是一个15字节的缓冲区? 是否有性能差异?

1 个答案:

答案 0 :(得分:0)

如果您要使用许多15字节数据结构并计划使用本地内存,我建议保留15字节结构并一次加载其中16个的倍数。我认为'很多'在您的工作组中至少会有几kb的数据。这样做的原因是,当您每15次牺牲额外字节时,会增加6%的传输开销。将数据保留为15还可以帮助避免在将数据写回内存(本地和全局内存)时发生银行冲突。

More info about bank conflicts.