【问题标题】:OpenCL 2.0 on AMD GPUAMD GPU 上的 OpenCL 2.0
【发布时间】:2016-03-22 22:31:06
【问题描述】:

我正在尝试在 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

编辑

啊,傻。在clCreateProgramWithSource 的编译器选项中指定-cl-std=CL2.0 似乎会有所帮助。这应该是预期的行为吗?

【问题讨论】:

    标签: opencl gpu amd-app


    【解决方案1】:

    这应该是预期的行为吗?

    是的。以下是 OpenCL 2.0 规范中的相关段落(5.8.4.5 控制 OpenCL C 版本的选项部分):

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

    【讨论】:

    • 应该更努力地用谷歌搜索。我还有另一个问题,当以这种方式编译并保存二进制文件时,clCreateProgramWithBinary() 会使应用程序崩溃(调用中存在一些访问冲突)。你碰巧有这方面的经验吗?没有-cl-std=CL2.0 也能正常工作。
    • 没有个人经验,但任何像这样的崩溃对我来说都是一个错误。最好直接向 AMD 提出一个错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-14
    • 2016-06-16
    • 2020-02-12
    • 1970-01-01
    • 2017-04-12
    相关资源
    最近更新 更多