【发布时间】:2014-12-18 06:31:08
【问题描述】:
假设我们的硬件有 32 个 4 字节宽的存储体。我们有一个大小为 32 的一维内核和一个本地一维整数数组。
然后,确保每个连续线程访问数组中连续的内存位置应该避免银行冲突。
但是,假设我们有一个 8 x 4 2D 内核和相同的 1D 数组。如何确保没有银行冲突?我们如何定义二维数组的“连续线程”?
【问题讨论】:
-
简单地将线程 ID 从 2D 线性化到 1D。
-
谢谢,蝉。你的意思是 get_local_id(0) + get_local_id(1) * 4 吗?
-
This post 及其答案有助于了解如何定义 2D 工作组中的连续线程。
-
@Farzad 谢谢这很有用
标签: opencl bank-conflict