|
@ -84,10 +84,7 @@ void largeMV(const int n, const int m, __global float* y, __global float* A, __g |
|
|
if (z == 0) { |
|
|
if (z == 0) { |
|
|
y[i + t] = 0; |
|
|
y[i + t] = 0; |
|
|
} |
|
|
} |
|
|
//Q[id] = 0; |
|
|
|
|
|
for (size_t j = 0; j < n; j += T) { // oszlop kezdete ahol a modul van |
|
|
for (size_t j = 0; j < n; j += T) { // oszlop kezdete ahol a modul van |
|
|
|
|
|
|
|
|
//Q[t * Z + z] += A[(j + z) + (i + t) * m] * x[i + t]; |
|
|
|
|
|
Q[t * Z + z] = A[(j + z) + (i + t) * m] * x[i + t]; |
|
|
Q[t * Z + z] = A[(j + z) + (i + t) * m] * x[i + t]; |
|
|
barrier(CLK_LOCAL_MEM_FENCE); |
|
|
barrier(CLK_LOCAL_MEM_FENCE); |
|
|
|
|
|
|
|
@ -97,11 +94,6 @@ void largeMV(const int n, const int m, __global float* y, __global float* A, __g |
|
|
} |
|
|
} |
|
|
barrier(CLK_LOCAL_MEM_FENCE); |
|
|
barrier(CLK_LOCAL_MEM_FENCE); |
|
|
} |
|
|
} |
|
|
//if (z == 0) { |
|
|
|
|
|
// for (size_t zz = 1; zz < Z; zz++) { |
|
|
|
|
|
// Q[t * Z] += Q[t * Z + zz]; |
|
|
|
|
|
// } |
|
|
|
|
|
//} |
|
|
|
|
|
if (z == 0) { |
|
|
if (z == 0) { |
|
|
y[i + t] += Q[t * Z + 0]; |
|
|
y[i + t] += Q[t * Z + 0]; |
|
|
} |
|
|
} |
|
|