后,即可求得L、U矩陣的逆矩陣。
[0063] (3)矩陣相乘
[0064] 最后A矩陣的求逆要通過計算公式AizUSLiP來完成。矩陣乘法模塊采用四 路并行運算,每路運算單元使用一個復數(shù)乘法器和兩個復數(shù)加法器,其中兩個復數(shù)加法器 負責累加操作。整個乘法的過程當中,乘法器和累加器保持流水,累加器每隔η個周期出一 個結(jié)果數(shù)據(jù),其中η是矩陣的階數(shù)。乘法的結(jié)果矩陣根據(jù)列選主元LU分解步驟中的置換矩 陣Ρ,對結(jié)果矩陣進行列變換得到最終的矩陣求逆結(jié)果。
[0065] 本實施例根據(jù)上述技術(shù)方案(參見圖1)提供了一種硬件模塊。該硬件模塊具體 采用仿真/綜合工具和40nmCMOS工藝,主頻達到1GHz?;?GHz時鐘頻率下,復數(shù)乘法 器、復數(shù)加法器、實數(shù)乘法器、實數(shù)加法器均為4拍延遲的流水運算單元,實數(shù)除法器為19 拍延遲的非流水運算單元,所有運算單元均為單精度浮點運算單元,存儲器的取數(shù)延遲為6 拍,128階矩陣求逆的運行時間為1.42ms,結(jié)果誤差矩陣均方根統(tǒng)計誤差(RMS)小于10 4, 增加了整體的可靠性。另一方面,該技術(shù)方案是基于單端口Memory和單精度浮點運算單元 的并行流水處理,并支持任意階數(shù)矩陣求逆的硬件模塊有效加快了運算速度,提高了硬件 利用率,且具有良好的可擴展性,適合于VLSI的設計實現(xiàn)。
【主權(quán)項】
1. 一種矩陣求逆運算方法,其特征在于包括如下步驟: 1) 首先進行列選主元LU分解:根據(jù)公式PA = LU,將源矩陣A分解為單位下三角矩陣 L、上三角矩陣U和置換矩陣P ; 2) 接著進行三角矩陣求逆:對L矩陣求逆得到其逆矩陣L \將U矩陣的轉(zhuǎn)置矩陣求逆 后再轉(zhuǎn)置得到U S 3) 最后進行矩陣相乘:將矩陣U1和矩陣L 1相乘,并根據(jù)置換矩陣P將矩陣乘法結(jié)果 進行列變換得到源矩陣A、2. 根據(jù)權(quán)利1所述的矩陣求逆運算方法,其特征在于,步驟1)包括如下步驟: I) 進行選主元:從第一列中選取最大主元,與該列的第一個元素的值進行交換,并存 儲最大主元的行下標; II) 進行歸一化:將第一行與最大主元所在行互換,得到U分解因子的一行元素 Ulj,用 交換后的第一列第一個元素依次除以該列的其它元素,得到L分解因子的一列元素 I11,其 中1彡i彡n,1彡j彡η,η表示矩陣階數(shù); III) 進行數(shù)據(jù)更新:對矩陣進行更新操作A1u= a ,得到新子矩陣a1^,每次 更新操作后的子矩陣的階數(shù)比原矩陣的階數(shù)少一階,其中,%,為原矩陣中的值,2 < i < n, 2. j < η,η表示矩陣階數(shù)。對新的子矩陣循環(huán)重復以上三個步驟,最終得到L矩陣和U矩 陣。3. 根據(jù)權(quán)利要求2所述的矩陣求逆運算方法,其特征在于,所述步驟I)中根據(jù)當前循 環(huán)次數(shù)k,將矩陣的主列元素讀出,先將所述主列元素通過兩個實數(shù)乘法器和一個實數(shù)加法 器,流水運算得出主列元素的實部虛部平方和,再通過一個實數(shù)減法器,找出主元。4. 根據(jù)權(quán)利要求2所述的矩陣求逆運算方法,其特征在于,所述步驟II)中根據(jù)當前循 環(huán)中找到的最大主元行下標,將源矩陣的第k行與最大主元所在行互換,接著將數(shù)據(jù)交換 后的主列對角線數(shù)的實部和虛部分別送入兩個實數(shù)除法器中用于算出主元的倒數(shù),再將主 列對角線以下元素讀出,通過一個復數(shù)乘法器與主元的倒數(shù)相乘,完成歸一操作,其中k表 示當前循環(huán)次數(shù)。5. 根據(jù)權(quán)利要求2所述的矩陣求逆運算方法,其特征在于,所述步驟III)中采用四路 并行運算,每路運算使用一個復數(shù)乘法器和一個復數(shù)加法器,將矩陣第k行第k+Ι列、第k 行第k+2列、第k行第k+3列、第k行第k+4列的數(shù)據(jù),分別送入四路運算的對應復數(shù)乘法 器中,與步驟2)中歸一化的結(jié)果進行復數(shù)乘法運算;復數(shù)乘法器的結(jié)果直接送入復數(shù)加法 器,與矩陣第k+Ι列、第k+2列、第k+3列、第k+4列中第k+Ι行至第η行數(shù)據(jù)分別相減,當 所述四列數(shù)據(jù)更新完后,再對所述四列數(shù)據(jù)后續(xù)四列數(shù)據(jù)進行數(shù)據(jù)更新操作,依此類推直 至矩陣的最后一列完成數(shù)據(jù)更新操作,即完成了一次數(shù)據(jù)更新,其中k表示當前循環(huán)次數(shù), η為矩陣階數(shù)。6. 根據(jù)權(quán)利要求2所述的矩陣求逆運算方法,其特征在于,所述步驟2)通過取倒單元、 乘累加單元以及取反乘單元實現(xiàn)矩陣的求逆、轉(zhuǎn)置,其中, Α.取倒單元:根據(jù)下三角矩陣求逆公式,首先將對角線元素進行取倒,對于L矩陣,結(jié) 果為1 ;對于轉(zhuǎn)置后的U矩陣,將對角線元素讀出,通過兩個實數(shù)乘法器、一個實數(shù)加法器、 一個實數(shù)除法器和一個復數(shù)乘法器得到取倒運算的結(jié)果; Β.乘累加單元:根據(jù)下三角矩陣求逆公式分別分析L矩陣和轉(zhuǎn)置后的U矩陣的數(shù)據(jù) 依賴關(guān)系,通過四組由一個復數(shù)乘法器和一個復數(shù)加法器所組成的乘累加器進行乘累加運 算,所述乘累加運算從第2行開始按行順序計算非對角線元素,L矩陣和轉(zhuǎn)置后的U矩陣同 時進行乘累加運算; C.取反乘單元:通過復數(shù)乘法器對步驟B)中乘累加單元的結(jié)果,與步驟A)中取倒單 元的結(jié)果進行取反乘運算,即得到相應行的取反結(jié)果。7. 根據(jù)權(quán)利要求6所述的矩陣求逆運算方法,其特征在于,所述步驟A)中將復數(shù)的實 部虛部分別輸出到所述兩個實數(shù)乘法器,兩個實數(shù)乘法器的輸出端分別與所述實數(shù)加法器 的兩個輸入端連接,實數(shù)加法器的輸出端與所述實數(shù)除法器的輸入端連接,實數(shù)除法器的 另一輸入端固定地設置為1,實數(shù)除法器的輸出端與所述復數(shù)乘法器的輸入端連接。8. 根據(jù)權(quán)利要求6所述的矩陣求逆運算方法,其特征在于,所述步驟B)中L矩陣和轉(zhuǎn) 置后的U矩陣進行乘累加運算時,分別使用兩組乘累加器,每組乘累加器包括 復數(shù)乘法器完成L、U遞推公式1中1與 Sly的復數(shù)相乘操作,I ik表示L矩陣中的數(shù),S 表示L矩陣的逆矩陣中的數(shù),i表示行號,j 表示列號,k表示累加循環(huán)次數(shù); 復數(shù)加法器和延遲控制邏輯,根據(jù)復數(shù)乘法器的結(jié)果完成累加操作。9. 根據(jù)權(quán)利要求6所述的矩陣求逆運算方法,其特征在于,所述步驟C)中對于L矩陣, 將乘累加單元結(jié)果的符號位取反作為取反結(jié)果;對于U矩陣,需將乘累加單元的結(jié)果取反 后再與對應行的對角線元素相乘作為取反結(jié)果。10. 根據(jù)權(quán)利要求1所述的矩陣求逆運算方法,其特征在于,所述步驟3)中將U 1矩陣 按行劃分為四等份,同時使用四路乘累加運算單元分別與L 1矩陣進行乘累加運算,并根據(jù) 步驟1)中的P矩陣,對乘法結(jié)果矩陣進行列變換得到最終的矩陣求逆結(jié)果。
【專利摘要】本發(fā)明涉及一種矩陣求逆運算方法,包括如下步驟:1)首先進行列選主元LU分解:根據(jù)公式PA=LU,將源矩陣A分解為單位下三角矩陣L、上三角矩陣U和置換矩陣P;2)接著進行三角矩陣求逆:對L矩陣求逆得到其逆矩陣L-1,將U矩陣的轉(zhuǎn)置矩陣求逆后再轉(zhuǎn)置得到U-1;3)最后進行矩陣相乘:將矩陣U-1和矩陣?L-1相乘,并根據(jù)置換矩陣P將矩陣乘法結(jié)果進行列變換得到源矩陣A-1。有益效果為:通過使用列選主元LU分解算法,有效地降低矩陣求逆算法的時間復雜度,增加矩陣求逆運算的可并行性,減少矩陣求逆運算的時間,并且支持任意階數(shù)的矩陣求逆運算,可以根據(jù)運算點數(shù)需求增加或減少硬件資源,更好地滿足實際應用的需求。
【IPC分類】G06F17/16
【公開號】CN105426345
【申請?zhí)枴緾N201510994192
【發(fā)明人】李麗, 王堃, 潘紅兵, 韓峰, 豐帆, 李偉, 何書專
【申請人】南京大學
【公開日】2016年3月23日
【申請日】2015年12月25日