2

私は Open-cl を初めて使用し、次の行列演算用のカーネル コードを記述しようとしています。

A is a 2X2 matrix:
A = [1  2] ----> row1
    [3  4] ----->row2

I need to compute: 
1) s1 = transpose(row1) X row1
2) s1 = transpose(row2) X row2
3) Sum = s1+s2

例

行レベルのカーネル コードを作成しました (つまり、transpose(row1) X row1 を実行できます)。これは、最初の行のみの目的を果たします。

並列処理を使用して行ごとにこれを計算し、カーネル関数内で最終的な合計を見つけるにはどうすればよいですか?

private static String programSource1 =
            "__kernel"+
            " void matrixMul(__global float* A, __global float* C,  int rowLength)"+
            "{"+
                "int row = get_global_id(1);"+
                "int col = get_global_id(0);"+              
                    "C[row*rowLength+col] = A[col] * A[row];"+

            "}";
4

1 に答える 1