我下载了 AMD APP 3.0 SDK,一旦包含#include <CL/cl.hpp>
在我的 cpp 中,它会抛出弃用警告:
1>c:\program files (x86)\amd app sdk\3.0\include\cl\cl.hpp(4240): warning
C4996: 'clCreateSampler': was declared deprecated
还有很多。
难道我做错了什么?在编写一行有用的代码之前就已经出现了这么多警告,开始使用 openCL 时我感到很不舒服。
这里的问题是cl.hpp
适用于 OpenCL 1.X 平台,但 AMD SDK 的其余部分支持 OpenCL 2.0。这clCreateSampler
OpenCL 2.0 中已弃用该函数。
Khronos 发布了 C++ 绑定的 OpenCL 2.X 版本 -cl2.hpp
- 如果您希望使用 C++ API 以 OpenCL 2.0 设备为目标,则应该使用它。它可能尚未传播到供应商 SDK,但您可以获得最新版本直接来自 Khronos https://github.com/KhronosGroup/OpenCL-CLHPP/releases。要使用此标头以 OpenCL 2.0 为目标,您可以像这样包含它:
#define CL_HPP_TARGET_OPENCL_VERSION 200
#include <CL/cl2.hpp>
如果您希望以 OpenCL 1.2 平台为目标,则只需更改CL_HPP_TARGET_OPENCL_VERSION_MACRO
:
#define CL_HPP_TARGET_OPENCL_VERSION 120
#include <CL/cl2.hpp>
(这将抑制您之前收到的弃用警告)
您仍然可以使用 1.X 标头(cl.hpp
) 适用于 1.X 平台;您只需要明确表示弃用警告对您来说不是问题:
#define CL_USE_DEPRECATED_OPENCL_1_2_APIS
#include <CL/cl.hpp>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)