2016-04-26 9 views
-2

Я пытаюсь вычислить сумму строки матрицы в куде. поскольку cuda используется для параллельной обработки, поэтому нет необходимости в циклировании. Я сделал матричную операцию сумма и кодСумма матрицы матрицы в cuda

__global__ void MatAdd(int A[][N], int B[][N], int C[][N]){ 
int i = threadIdx.x; 
int j = threadIdx.y; 

C[i][j] = A[i][j] + B[i][j]; 
} 

, но в том же случае, не в состоянии преобразовать его в строку матрицы суммы. я попытался следующий код

__global__ void rowSums(float* matrix, float* sums, int rows, int cols) 
{ 
int row = blockIdx.y * blockDim.y + threadIdx.y; 
int col = blockIdx.x * blockDim.x + threadIdx.x; 
     if (i < N && j < M) 
       sums[j] += matrix[i][j]; 

} 
+0

У вас есть реальный вопрос? – talonmies

+0

Я хочу спросить, как сумма матричной строки должна быть сделана в jcuda .. – user3804161

ответ

0

Ваш первый образец кода выглядит правильно, если размер матрицы достаточно мал (по сравнению с blockdim х gridDim)

Для второго, ваша матрица должна быть поплавок **, так как вы разыгрываете его два раза. Затем вам нужно использовать переменные row и col или переименовать их i и j.

Смежные вопросы