1

我正在尝试在 AMD Fury X 上初始化 OpenCL 2.0,我正在查看__OPENCL_VERSION__. 无论如何都是120。我正在查看我的驱动程序和两者的内部,#define __OPENCL_VERSION__ 120并且#define __OPENCL_VERSION__ 200可以在那里找到。

是否需要在某处有一个特殊标志才能启用 2.0 版?我有以下平台和设备:

Advanced Micro Devices, Inc. 的 OpenCL 平台 'AMD Accelerated Parallel Processing',版本 OpenCL 2.0 AMD-APP (1912.5),FULL_PROFILE
设备:Advanced Micro Devices, Inc. 'Fiji'(驱动程序版本:1912.5 (VM))
OpenCL 版本: OpenCL 2.0 AMD-APP (1912.5)
OpenCL“C”版本:OpenCL C 2.0

编辑

啊,傻。似乎有助于-cl-std=CL2.0clCreateProgramWithSource. 这应该是预期的行为吗?

4

1 回答 1

5

这应该是预期的行为吗?

是的。这是 OpenCL 2.0 规范中的相关段落(第5.8.4.5 节控制 OpenCL C 版本的选项):

如果不指定–cl-std 构建选项,则在为每个设备编译程序时使用每个设备支持的最高OpenCL C 1.x 语言版本。如果应用程序想要使用 OpenCL C 2.0 编译或构建他们的程序,则需要指定 –cl-std=CL2.0 选项。

于 2015-12-16T17:20:04.273 回答