更改OpenCL编译器规则

时间:2013-12-07 17:29:33

标签: opencl

有没有办法防止OpenCL编译器在遇到内核代码中的x = 3 / 0;x = sqrt(INFINITY / NAN);等非法代码时抛出错误?

如果x中存储的答案是无意义的数字,我很好。只是想知道,是否有可能(可能通过编辑编译器)让所有OpenCL函数和操作忽略类型 - 如果传递正确数量的字节,则输出某些

1 个答案:

答案 0 :(得分:2)

您应该尝试其中一些: http://www.khronos.org/registry/cl/sdk/1.0/docs/man/xhtml/clBuildProgram.html

我会专注于:

<强> -Cl-不安全-数学优化:

  

允许优化浮点运算,(a)假设参数和结果有效,(b)可能违反IEEE 754标准,(c)可能违反第7.4节中针对单精度定义的OpenCL数值符合性要求浮点,第9.3.9节用于双精度浮点,以及第7.5节中的边缘情况行为。此选项包括-cl-no-signed-zeros和-cl-mad-enable选项。

<强> -Cl-有限数学仅

  

允许优化浮点运算,假设参数和结果不是NaN或±∞。此选项可能违反第7.4节中针对单精度浮点定义的OpenCL数值符合性要求,第9.3.9节中针对双精度浮点和第7.5节中的边缘情况行为。