【发布时间】:2020-10-29 00:42:22
【问题描述】:
任何人都知道 GPU 内核如何访问,例如,位于全局内存中的大型数据数组(并且由于某种原因我们不能只复制到共享内存)的详细信息吗?假设我们有一个类型的内核:
kernel void doSomething(global A* s, global float* result)
{
uint gidx = get_global_id(0);
// some code here using the global index of the thread gidx...
}
我的理解——如果我错了请纠正我——是每个线程访问一个连续的元素s[gidx] 并对其执行操作。这是否暗示全局数组 A* 的大小与工作项的全局大小之间存在直接关系?我这么说只是因为我看不到每个内核如何在数组的不同数据点上运行?
【问题讨论】: