《多核程式設計》學習筆記 矩陣乘法並行化

2021-08-09 15:36:43 字數 690 閱讀 3512

說到矩陣乘法,最先想到的就是用兩個for迴圈,迴圈矩陣a的行再迴圈矩陣b的列,從而實現矩陣a與b的相乘。

(1)下面是序列演算法的實現**:

#include#includetypedef struct

matrix;

void initial(matrix &m,int row,int col)

void initvalue(matrix &m, int row, int col)

} void matrix_multiply(matrix &a,matrix &b,matrix &c)

matrix;

typedef struct

parameter;

matrix a,b,c;

handle* h=(handle* )malloc(sizeof(handle)*a.row);

void initial(matrix &m,int row,int col)

void initvalue(matrix &m, int row, int col)

} void multiply(void *n) //i是a的行數

{ int i;

parameter p=*((parameter *)n);

c.mat[p.a][p.b]=0;

for(i=0;i

學習筆記 並行程式設計

環境配置見前篇 pragma omp parallel num threads 執行緒數 pragma omp parallel for num threads 執行緒數 pragma omp critical 矩陣乘法 不定長文字分組void func 每個執行緒執行的函式 void rank p...

CUDA學習 矩陣乘法的並行運算

cpu實現a b c的矩陣乘法 矩陣尺寸是n m的,n和m大於1000 將cpu 移植到cuda。將cpu值傳入gpu,使用cuda計算,與cpu結果對比。優化思路1 將矩陣分塊進行計算 優化思路2 使用share memory進行優化 優化思路3 將資料繫結在texture上 廢話不多說,直接上原...

矩陣乘法 學習筆記

所謂矩陣,其實就是乙個數字陣列。矩陣乘法 任意兩個矩陣a與b相乘,將矩陣a的第 i 行依次與矩陣b的每一列的元素對應相乘並求和,得到新矩陣的的第 i 行。因此我們可以發現,要滿足兩個矩陣可以相乘,必須滿足矩陣a的列數等於矩陣b的行數 單位矩陣 由矩陣乘法可以發現,兩個矩陣是可以相乘的。對於乙個矩陣a...