gpt4 book ai didi

c++ - clBuild 选项,传递 OpenCL 扩展

转载 作者:太空宇宙 更新时间:2023-11-04 03:02:14 25 4
gpt4 key购买 nike

我环顾四周,但无法找到我发现的一个相对简单的 OpenCL 相关问题的解决方案。

事实是,我刚刚开始在我的 OpenCL 内核中使用 double ,因为我当前的项目需要那么高的精度。此外,我试图让一切都得到管理,以便所有内核都可以使用相同的#DEFINES。

然后我来到扩展。通过 OpenCL,我必须包括

#pragma OPENCL EXTENSION cl_khr_fp64 : enable

如何将它包含在 clBuildProgram 的构建选项中?

最佳答案

您可以使用 CL_DEVICE_EXTENSIONS(OpenCL 1.1 规范的第 4.2 节)从主机调用 clGetDeviceInfo 检查设备支持的扩展。如果支持扩展,返回的字符串将包含“cl_khr_fp64”。

使用 clBuildProgram 编译 OpenCL 代码时,如果支持扩展,则编译器定义“cl_khr_fp64”(OpenCL 1.1 规范的第 9.1 节)。

要在 OpenCL 代码中启用扩展,您必须包含 pragma 行。您可以通过向 clBuildProgram 传递一个选项来控制主机代码对扩展的使用,例如 -D USE_FP64=1,然后在 OpenCL 代码中对其进行测试:

#if USE_FP64
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
#endif

关于c++ - clBuild 选项,传递 OpenCL 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10106475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com