我正在尝试在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加速并行处理',版本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.0
中的编译器选项中指定clCreateProgramWithSource
。那应该是预期的行为吗?
答案 0 :(得分:5)
这应该是预期的行为吗?
是。以下是OpenCL 2.0规范中的相关段落( 5.8.4.5控制OpenCL C版本的选项部分):
如果未指定-cl-std构建选项,则在为每个设备编译程序时将使用每个设备支持的最高OpenCL C 1.x语言版本。如果要使用OpenCL C 2.0编译或构建程序,则需要应用程序指定-cl-std = CL2.0选项。