openCL浮点异常

openCL浮点异常,opencl,Opencl,我的输入字符数组是1024,我已经指定了任何本地项大小=32。我的每个工作项使用16个字符,我已指定全局项大小=64。在我的内核中,我计算了如下数据 int offset=16; int gr_id=get_group_id(0); int id = get_global_id(0); int data_tid=(gr_id*32+id)*offset; 我使用的是英伟达Geforce 9800GT。 我的代码引发浮点异常。我已经看到这是由全局大小不可被局部大小整除引起的,但在我的例子中它是可

我的输入字符数组是1024,我已经指定了任何本地项大小=32。我的每个工作项使用16个字符,我已指定全局项大小=64。在我的内核中,我计算了如下数据

int offset=16;
int gr_id=get_group_id(0);
int id = get_global_id(0);
int data_tid=(gr_id*32+id)*offset;
我使用的是英伟达Geforce 9800GT。 我的代码引发浮点异常。我已经看到这是由全局大小不可被局部大小整除引起的,但在我的例子中它是可整除的


有人能告诉我问题出在哪里吗?

您想使用
获取本地\u id
而不是
获取全局\u id
。本地id是每个组中工作项的索引。全局id是整个范围内工作项的索引


您也可以直接使用
int data\u tid=get\u global\u id(0)*offset

您有关于引发异常的行的信息吗?//如果执行空内核,是否也会发生这种情况?当您使用100%整数时,这部分代码不应导致FloatingPoint执行选项。还有更多的代码吗?