Я новый Открыть-ХЛ, и я пытаюсь написать код ядра для следующей матричной операции:Проблема в функции OpenCL ядра
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
Я написал код ядра для уровня строки (т.е. Я могу сделать транспонирование (row1) X row1) -this служит только для первой строки
Как использовать параллелизм для вычисления этого для каждой строки и найти окончательную сумму в функции ядра?
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];"+
"}";
Будет ли окончательная реализация работать только на матрице 2x2 матриц или больших матриц? Это полностью меняет, как реализовать код .... – DarkZeros