是否所有与 OpenCL 优化相关的选项都默认为 false?
Posted
技术标签:
【中文标题】是否所有与 OpenCL 优化相关的选项都默认为 false?【英文标题】:Do all the OpenCL optimization-related options default to false? 【发布时间】:2021-07-11 12:55:39 【问题描述】:OpenCL 实现编译器采用(参见 2.2 或 3.0 的规范)以及以下命令行选项:
-cl-single-precision-constant
-cl-denorms-are-zero
-cl-fp32-correctly-rounded-divide-sqrt
-cl-opt-disable
-cl-mad-enable
-cl-no-signed-zeros
-cl-unsafe-math-optimizations
-cl-finite-math-only
-cl-fast-relaxed-math
-cl-uniform-work-group-size
-cl-no-subgroup-ifp
这些都是 OpenCL 规范要求默认为 false 的吗?如果没有,它们是否都有定义的默认值?或者 - 每个实施者是否设置了自己的默认值?
【问题讨论】:
【参考方案1】:是的,如果没有明确设置,它们默认都是 false。
根据OpenCL specification:“这些选项默认情况下未打开,因为它可能导致依赖于数学函数的 IEEE 754 规则/规范的精确实现的程序的错误输出。”
【讨论】:
但该引用仅涉及浮点相关选项。 它考虑除 -cl-single-precision-constant、-cl-denorms-are-zero 和 -cl-fp32-correctly-rounded-divide-sqrt 之外的所有选项。从它们描述的上下文来看,剩下的三个 - 就像与浮点相关的选项一样 - 默认启用绝对没有意义。以上是关于是否所有与 OpenCL 优化相关的选项都默认为 false?的主要内容,如果未能解决你的问题,请参考以下文章