0

我的输入字符数组是 1024,并且我指定了任何本地项目大小 = 32。我的每个工作项都在 16 个字符上工作,我指定了全局项目大小 = 64。在我的内核中,我计算了 data_tid 如下。

int offset=16;
int gr_id=get_group_id(0);
int id = get_global_id(0);
int data_tid=(gr_id*32+id)*offset;

我正在使用 NVIDIA Geforce 9800GT。我的代码抛出浮点异常。我已经看到这是由于 global_size 不能被本地大小整除,但在我的情况下它是可整除的。

谁能告诉我问题出在哪里?

4

1 回答 1

0

您想使用get_local_id而不是get_global_id. 本地 id 是每个组中工作项的索引。全局 id 是工作项在整个范围内的索引。

也可以直接使用int data_tid = get_global_id(0) * offset;

于 2012-09-12T20:08:08.703 回答