4

問題に最適な作業グループのサイズを見つけようとしていたところ、自分では正当化できないものを見つけました。

これらは私の結果です:

  • GlobalWorkSize {6400 6400 1}、WorkGroupSize {64 4 1}、時間 (ミリ秒) = 44.18
  • GlobalWorkSize {6400 6400 1}、WorkGroupSize {4 64 1}、時間 (ミリ秒) = 24.39

軸を入れ替えると、実行速度が 2 倍速くなりました。どうして !?

ちなみに、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];
}
4

1 に答える 1