【问题标题】:AMD OpenCL compiler ignores kernel attribute "work_group_size_hint"AMD OpenCL 编译器忽略内核属性“work_group_size_hint”
【发布时间】:2012-06-29 13:32:43
【问题描述】:

我目前正在优化 OpenCL 内核,并一直在尝试为工作组大小和向量宽度找到最佳值。
目前我正在使用带有 Intel i7-3930k(6 核 @ 3.5 GHz,HT 禁用)和 AMD HD6870 的 ubuntu 系统。安装了 Intel 和 AMD OpenCL 实现以进行比较。 (AMD APP SDK v2.7 Linux 64b & Catalyst 12.4,英特尔 OpenCL SDK 1.5)。

在 CPU 上运行(在 Intel 平台上)我发现:

  • 通过选择 256 的 wg 大小,与 wgsize=1 相比,我可以获得大约 13.5% 的性能。
  • 通过指定__attribute__((vec_type_hint(float4))),我可以获得 30% 的提升。
  • 通过指定 __attribute__((work_group_size_hint(WG_SIZE, 1, 1))) 我又得到了大约 90% (!)

因此,总的来说,这些选项可以使性能提高近 3 倍。不幸的是,在使用 AMD OpenCL 平台的 CPU 上运行这个案例时,我发现可选属性被忽略了。

内核声明是:

kernel  __attribute__(( work_group_size_hint(WG_SIZE, 1, 1) ))
        __attribute__(( vec_type_hint(VEC_SIZE) )) 
void solveEikonalEq(    global      env_packed_t*   env_packed_in,
                        global      float*          packedEnvData_in,
                        private     float           ds,
                        private     float           freq,
                        global      ray_t*          ray,
                        global      rayMembers_t*   rayMembers){

编译器输出为:

"/tmp/OCLVAvDqR.cl", line 2637: warning: unknown attribute "work_group_size_hint"
  kernel  __attribute__((work_group_size_hint(WG_SIZE, 1, 1)))
                         ^

"/tmp/OCLVAvDqR.cl", line 2638: warning: unknown attribute "vec_type_hint"
          __attribute__(( vec_type_hint(VEC_SIZE))) 
                          ^

有人知道 AMD 是否总是忽略这些提示吗?或者我必须做些什么才能在 AMD 平台上启用这些属性?

【问题讨论】:

    标签: linux opencl gpu intel amd-processor


    【解决方案1】:

    引用 AMD 论坛 (http://devgurus.amd.com/message/1282250) 的回答:

    已在内部添加了对工作组大小提示的支持,并且应该在下一个版本中提供。 vec_type_hint 是可选的且不受支持,但我将提交请求以添加对解析器的支持。

    米卡·维尔莫
    Advanced Micro Devices Inc.

    因此,简而言之,根据 AMD 代表的说法:

    • AMD的APP SDK v2.7既不知道work_group_size_hint也不知道vec_type_hint
    • work_group_size_hint APP SDK v2.8版本即将到来
    • vec_type_hint 可能会在未来的版本中得到支持。

    【讨论】:

    • 我建议你询问 OP 并注明当前版本号,以便以后登陆这里的人知道“下一个”版本是什么。
    • @ananthonline 好点!相应地更新了问题和答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-02
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 2012-11-07
    • 2011-09-07
    • 1970-01-01
    相关资源
    最近更新 更多