使用 AMD APP SDK 2.9 创建符合 OpenCL 1.1 的应用程序
Creating OpenCL 1.1 compliant application using AMD APP SDK 2.9?
AMD仅保留了其SDK的2.9,2.8和2.7版本,所有这些版本都适用于OpenCL 1.2。我希望我的应用程序与 OpenCL 1.1 硬件兼容。由于我坚持使用 1.2 SDK,并且没有太多的硬件支持进行测试,我想知道这样做的正确方法是什么?
-
我从Khronos网站下载了1.1标头,并将它们与我的MinGW编译器一起使用。该应用程序适用于我的 ATI GPU,只有 OpenCL 1.1 驱动程序,但我不确定我是否正确。我有这个疑问,因为我仍在从OpenCL 1.2的SDK链接OpenCL.lib。
-
我还应该将 OpenCL.dll 从 SDK 分发到我的应用程序中吗?
-
通过禁用 OpenCL 代码以避免在不兼容的硬件中出现错误消息的最佳方法是什么,以便至少其他所有内容都运行?
看看 cl.h header:
每个 API 函数都有宏,用于定义它属于哪个版本:
extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL
clCreateImage2D(cl_context /* context */,
cl_mem_flags /* flags */,
const cl_image_format * /* image_format */,
size_t /* image_width */,
size_t /* image_height */,
size_t /* image_row_pitch */,
void * /* host_ptr */,
cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
因此,要使您的应用程序符合 OpenCL 1.1 标准,请使用版本 1.1 及更早版本的函数。考虑到,函数(如clCreateImage2D)可能在新的API版本中被弃用。在这种情况下,您需要定义CL_USE_DEPRECATED_OPENCL_1_1_APIS宏 - 但我不知道这是否是一种好的做法。
相关文章:
- 试图在visual studio上用C++创建一个桌面应用程序
- FFmpeg:制作一个应用程序比直接使用ffmepg更好吗
- 在C应用程序中运行C++(带有STL)函数
- 使用VerQueryValue检索应用程序的文件描述
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 使用调试/崩溃报告将应用程序部署到客户端
- C++控制台应用程序阻止退出
- 码头化的C++应用程序是否向后兼容早期的内核版本
- 将应用程序从32位移植到64位时出现问题
- 如何改变c++应用程序的视觉效果
- WM_CTLCOLORSTATIC从未在WIN32应用程序中触发
- PC中的程序和PHONE中的本机描述应用程序之间的数据连接
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 测量 OpenCL 应用程序的运行时间
- OpenCL 在使用地址清理器编译主机应用程序时可用
- 使用 AMD APP SDK 2.9 创建符合 OpenCL 1.1 的应用程序
- 在笔记本电脑上开发不支持 GPU 的 OpenCL 应用程序
- 如何使用NVidia GPU在Windows下逐步调试OpenCL GPU应用程序
- C/C++应用程序是否可以使用 OpenCL
- 无法在 1.1 版本中使用 1.2 标头编译 OpenCL 应用程序