Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:CUDA_full / P03_MatrixMultiplication / CUDA_MMult / mmult
.cpp#include "mmult.h"
/* Вычисление матричного произведения c = a * b,
a — матрица размера m x n, b — n x k, c — m x k,
матрицы хранятся по строкам.
*/
void mmult(int m, int n, int k, const float * a, const float * b, float * c)
{
// Простое вычисление по определению (далеко не самый эффективный способ
// реализации на CPU).
for (int i = 0; i < m; ++i)
for (int j = 0; j < k; ++j)
{
c[i * k + j] = 0;
for (int l = 0; l < n; ++l)
c[i * k + j] += a[i * n + l] * b[l * k + j]; // c(i, j) += a(i, l) * b(l, j)
}
}