openCL浮点异常

时间:2012-09-12 12:37:05

标签: opencl

我的输入字符数组是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引起的,不能被本地大小整除,但在我看来它是可以整除的。

有人可以告诉我问题在哪里吗?

1 个答案:

答案 0 :(得分:0)

您想使用get_local_id代替get_global_id。本地标识是每个组中工作项的索引。全局id是整个范围内工作项的索引。

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