openCL浮点异常
我的输入字符数组是1024,我已经指定了任何本地项大小=32。我的每个工作项使用16个字符,我已指定全局项大小=64。在我的内核中,我计算了如下数据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。 我的代码引发浮点异常。我已经看到这是由全局大小不可被局部大小整除引起的,但在我的例子中它是可
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执行选项。还有更多的代码吗?