Intel(R) Iris(R) Plus Graphics运行pyopencl报double类型错误如何解决
报错原因
- 双精度浮点数(
double)不属于OpenCL标准对设备的强制支持特性,归类为可选的cl_khr_fp64扩展能力。消费级集成显卡默认不会主动启用该扩展,需要在内核代码中手动声明才可以使用对应类型。 - 你所使用的Intel(R) Iris(R) Plus Graphics核显的OpenCL HD Graphics驱动本身支持
cl_khr_fp64扩展,但要求内核代码必须显式声明启用后才允许调用double类型。你的OpenCL内核代码中使用了double但未添加对应的扩展启用声明,因此在编译阶段触发该报错。
修复方案
在你的OpenCL内核代码的最顶部添加如下声明即可:
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
如果添加上述声明后仍然触发同类报错,说明你的设备驱动或硬件本身不支持双精度扩展,此时需要将内核代码中所有double类型替换为单精度float类型适配硬件能力。
内容的提问来源于stack exchange,提问作者Malineni Srikanth
相关产品推荐
相关产品推荐

