1. 程式人生 > >矩陣基礎 (3). 分塊矩陣的加法和乘法運算

矩陣基礎 (3). 分塊矩陣的加法和乘法運算

摘要

本文主要講述分塊矩陣的加法運算和乘法運算。將矩陣進行分塊操作有很多的好處,特別是在高效能平行計算領域內,矩陣的分塊化操作更是有很多益處。

1. 分塊矩陣加法運算

給定矩陣A,B分別如下,



矩陣A+B=C,矩陣C如下,


分塊矩陣的加法運算非常顯然,這裡就不再多費筆墨了。

2. 分塊矩陣的乘法運算

給定矩陣A,B分別如下,(注意:這裡矩陣A,B中的每一個元素都是子矩陣)



矩陣A*B=C,矩陣C如下,


分塊矩陣的乘法運算也比較直觀,但是相比於其加法運算而言,乘法運算顯然會難一點。

3. 分塊矩陣運算小結

分塊矩陣做的是一個非常顯然的事情是對矩陣乘法粒度的變大化。更加細一點而言,一般的矩陣乘法每一次對矩陣中的一個數進行累積和運算。而分塊矩陣面向的操作物件是一個個的子矩陣,顯然兩者在計算的粒度上有很多的不同。至於子矩陣的粒度的大小,取決於一個執行緒能夠用到的記憶體的大小和其計算能力,每一個執行緒能用到的記憶體越大,能用到的計算能力越大相應地,每一個子執行緒的運算處理能力就越大,子矩陣的粒度也就可以大一些。反之,則子矩陣粒度小些。最後,希望我足夠虔誠,也希望讀者能在本文中有所收穫。