相关疑难解决方法(0)

OpenCL - 工作组轴是否可以交换?

我试图为一个问题找到最佳的工作组规模,但我发现了一些我无法为自己辩解的事情。

这些是我的结果:

  • GlobalWorkSize {6400 6400 1},WorkGroupSize {64 4 1},时间(毫秒)= 44.18
  • GlobalWorkSize {6400 6400 1},WorkGroupSize {4 64 1},时间(毫秒)= 24.39

交换轴使执行速度提高了一倍。为什么 !?

顺便说一下,我使用的是 AMD GPU。

谢谢 :-)

编辑: 这是内核(一个简单的矩阵转置):

__kernel void transpose(__global float *input, __global float *output, const int size){
    int i = get_global_id(0);
    int j = get_global_id(1);
    output[i*size + j] = input[j*size + i];
}
Run Code Online (Sandbox Code Playgroud)

opencl

4
推荐指数
1
解决办法
1000
查看次数

标签 统计

opencl ×1