矩陣求逆處理方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體而言,涉及一種矩陣求逆處理方法和裝置。
【背景技術(shù)】
[0002] 在現(xiàn)在數(shù)字化產(chǎn)業(yè)領(lǐng)域中,由于計(jì)算機(jī)技術(shù)的飛速發(fā)展,越來越多其他領(lǐng)域的技 術(shù)開始被囊括進(jìn)來,也越來越多的依靠數(shù)字化技術(shù)帶來明顯的產(chǎn)業(yè)推動(dòng)能力,特別是制造 業(yè)領(lǐng)域,由于設(shè)計(jì)、仿真分析在產(chǎn)品開發(fā)過程中所占有的比重增加,以及計(jì)算機(jī)便利的快速 計(jì)算分析能力,現(xiàn)代制造業(yè)的產(chǎn)品開發(fā)流程幾乎完全是基于數(shù)字化技術(shù)之上。也正是這種 依賴關(guān)系,促使計(jì)算機(jī)軟硬件不斷更新?lián)Q代以滿足日益提升的性能需求。
[0003] 對(duì)于矩陣的計(jì)算通常包括限單元法和有限差分法以及邊界元法。相對(duì)于有限單元 法和有限差分法,邊界元法因其高精度及降維優(yōu)勢(shì),更適合于快速預(yù)處理、自適應(yīng)結(jié)構(gòu)分析 的過程。但采用邊界元法得到的系數(shù)矩陣具有稠密且非對(duì)稱的劣勢(shì),傳統(tǒng)邊界元法的求解 效率以及求解問題規(guī)模都受到了限制。很多學(xué)者通過引入快速數(shù)值計(jì)算算法,如快速多極 等,加速邊界元求解計(jì)算過程,提高求解問題規(guī)模。然而,對(duì)于時(shí)間相關(guān)的工程問題,在時(shí)域 或頻域利用邊界元法求解時(shí),由于基本解的復(fù)雜性以及時(shí)域離散或轉(zhuǎn)換需求,上述數(shù)值算 法不能取得很好的計(jì)算效果。尤其是涉及〇(N 3)計(jì)算復(fù)雜度的矩陣求逆運(yùn)算消耗了數(shù)值運(yùn) 算過程中的大量時(shí)間。
[0004] Hackbusch在1999年提出了基于遺傳樹結(jié)構(gòu)的數(shù)值求解算法加速算法。利用矩陣 分塊,并將相容子塊利用外乘法近似表示,從而壓縮矩陣數(shù)據(jù)存儲(chǔ),減少參與矩陣運(yùn)算的數(shù) 據(jù)量,同時(shí)利用遞歸思想,借助遺傳樹結(jié)構(gòu),提出了近似求逆方法。但這種方法對(duì)于計(jì)算效 率提升有限,同時(shí)由于是近似擬合,計(jì)算精度無法得到保證。此外,由于矩陣求逆運(yùn)算中較 強(qiáng)的數(shù)據(jù)關(guān)聯(lián)性,難以利用中央處理器(CPU)多核并行計(jì)算提升降低計(jì)算時(shí)間耗費(fèi),這使 得矩陣求逆的過程中計(jì)算效率較低。
[0005] 針對(duì)現(xiàn)有技術(shù)中矩陣求逆過程中計(jì)算效率低的問題,目前尚未提出有效的解決方 案。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的主要目的在于提供一種矩陣求逆處理方法和裝置,以解決現(xiàn)有技術(shù)中矩 陣求逆過程中計(jì)算效率低的問題。
[0007] 為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種矩陣求逆處理方 法。根據(jù)本發(fā)明的矩陣求逆處理方法包括:獲取經(jīng)過中央處理器擴(kuò)展后的擴(kuò)展矩陣,所述擴(kuò) 展矩陣包括目標(biāo)矩陣和與所述目標(biāo)矩陣具有相同大小的單位矩陣;根據(jù)所述擴(kuò)展矩陣?yán)?統(tǒng)一計(jì)算設(shè)備架構(gòu)平臺(tái)構(gòu)建全局網(wǎng)格結(jié)構(gòu),其中,所述全局網(wǎng)格結(jié)構(gòu)包括多個(gè)線程;利用所 述全局網(wǎng)格結(jié)構(gòu)采用并行計(jì)算的方式依次對(duì)所述擴(kuò)展矩陣的列向量進(jìn)行計(jì)算,采用串行計(jì) 算的方式對(duì)所述擴(kuò)展矩陣的行向量的行間數(shù)據(jù)進(jìn)行計(jì)算,得到計(jì)算結(jié)果,所述計(jì)算結(jié)果包 括所述目標(biāo)矩陣的逆矩陣和與所述逆矩陣具有相同大小的單位矩陣;以及將所述計(jì)算結(jié)果 輸出至所述中央處理器,其中,所述中央處理器從所述計(jì)算結(jié)果中提取所述逆矩陣。
[0008] 進(jìn)一步地,根據(jù)所述擴(kuò)展矩陣?yán)媒y(tǒng)一計(jì)算設(shè)備架構(gòu)平臺(tái)構(gòu)建全局網(wǎng)格結(jié)構(gòu)包 括:根據(jù)所述擴(kuò)展矩陣的大小確定分割基數(shù);按照所述分割基數(shù)對(duì)所述擴(kuò)展矩陣的行向量 和列向量進(jìn)行劃分,得到多個(gè)數(shù)據(jù)段;以及根據(jù)所述分割基數(shù)和所述多個(gè)數(shù)據(jù)段的數(shù)量構(gòu) 建線程塊結(jié)構(gòu),形成所述全局網(wǎng)格結(jié)構(gòu),其中,所述全局網(wǎng)格結(jié)構(gòu)包括與所述多個(gè)數(shù)據(jù)段 一一對(duì)應(yīng)的線程塊,每個(gè)線程塊具有與所述分割基數(shù)相同數(shù)量的線程。
[0009] 進(jìn)一步地,利用所述全局網(wǎng)格結(jié)構(gòu)采用并行計(jì)算的方式依次對(duì)所述擴(kuò)展矩陣的列 向量進(jìn)行計(jì)算,采用串行計(jì)算的方式對(duì)所述擴(kuò)展矩陣的行向量的行間數(shù)據(jù)進(jìn)行計(jì)算,得到 計(jì)算結(jié)果包括:計(jì)算所述擴(kuò)展矩陣中當(dāng)前行向量的系數(shù)向量,所述系數(shù)向量包括所述擴(kuò)展 矩陣中所述當(dāng)前行向量之外的其他行向量對(duì)于所述當(dāng)前行向量的系數(shù);利用所述全局網(wǎng)格 結(jié)構(gòu)中線程計(jì)算該線程在所述擴(kuò)展矩陣的映射位置上的變換結(jié)果,用所述變換結(jié)果替換在 所述擴(kuò)展矩陣的映射位置上的數(shù)據(jù),得到替換后的擴(kuò)展矩陣;判斷所述當(dāng)前行向量是否是 所述擴(kuò)展矩陣的最后一行行向量;如果判斷出所述當(dāng)前行向量不是所述擴(kuò)展矩陣的最后一 行行向量,則將所述當(dāng)前行向量的下一行行向量作為所述當(dāng)前行向量,返回執(zhí)行計(jì)算當(dāng)前 行向量的系數(shù)向量的步驟;以及如果判斷出所述當(dāng)前行向量是所述擴(kuò)展矩陣的最后一行行 向量,則對(duì)所述替換后的擴(kuò)展矩陣進(jìn)行單位化處理,得到所述計(jì)算結(jié)果。
[0010] 進(jìn)一步地,計(jì)算所述擴(kuò)展矩陣中當(dāng)前行向量的系數(shù)向量包括:獲取所述當(dāng)前行向 量的對(duì)角位置數(shù)據(jù);獲取所述對(duì)角位置數(shù)據(jù)所在的列向量上的數(shù)據(jù);依次將對(duì)角位置數(shù)據(jù) 與所述對(duì)角位置數(shù)據(jù)所在的列向量上的數(shù)據(jù)相除,得到所述系數(shù)向量。
[0011] 進(jìn)一步地,在利用所述全局網(wǎng)格結(jié)構(gòu)中線程計(jì)算該線程在所述擴(kuò)展矩陣的映射位 置上的變換結(jié)果之前,所述矩陣求逆處理方法還包括:建立共享顯存空間,所述共享顯存空 間用于存儲(chǔ)所述當(dāng)前行向量的數(shù)據(jù);其中,所述全局網(wǎng)格結(jié)構(gòu)中線程從所述共享顯存空間 調(diào)用所述當(dāng)前行向量的數(shù)據(jù)用于計(jì)算該線程在所述擴(kuò)展矩陣的映射位置上的變換結(jié)果。
[0012] 為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明實(shí)施例的另一方面,提供了一種矩陣求逆處理裝 置。根據(jù)本發(fā)明的矩陣求逆處理裝置包括:獲取單元,用于獲取經(jīng)過中央處理器擴(kuò)展后的擴(kuò) 展矩陣,所述擴(kuò)展矩陣包括目標(biāo)矩陣和與所述目標(biāo)矩陣具有相同大小的單位矩陣;第一建 立單元,用于根據(jù)所述擴(kuò)展矩陣?yán)媒y(tǒng)一計(jì)算設(shè)備架構(gòu)平臺(tái)構(gòu)建全局網(wǎng)格結(jié)構(gòu),其中,所述 全局網(wǎng)格結(jié)構(gòu)包括多個(gè)線程;計(jì)算單元,用于利用所述全局網(wǎng)格結(jié)構(gòu)采用并行計(jì)算的方式 依次對(duì)所述擴(kuò)展矩陣的列向量進(jìn)行計(jì)算,采用串行計(jì)算的方式對(duì)所述擴(kuò)展矩陣的行向量的 行間數(shù)據(jù)進(jìn)行計(jì)算,得到計(jì)算結(jié)果,所述計(jì)算結(jié)果包括所述目標(biāo)矩陣的逆矩陣和與所述逆 矩陣具有相同大小的單位矩陣;以及輸出單元,用于將所述計(jì)算結(jié)果輸出至所述中央處理 器,其中,所述中央處理器從所述計(jì)算結(jié)果中提取所述逆矩陣。
[0013] 進(jìn)一步地,所述第一建立單元包括:確定模塊,用于根據(jù)所述擴(kuò)展矩陣的大小確定 分割基數(shù);劃分模塊,用于按照所述分割基數(shù)對(duì)所述擴(kuò)展矩陣的行向量和列向量進(jìn)行劃分, 得到多個(gè)數(shù)據(jù)段;以及構(gòu)建模塊,用于根據(jù)所述分割基數(shù)和所述多個(gè)數(shù)據(jù)段的數(shù)量構(gòu)建線 程塊結(jié)構(gòu),形成所述全局網(wǎng)格結(jié)構(gòu),其中,所述全局網(wǎng)格結(jié)構(gòu)包括與所述多個(gè)數(shù)據(jù)段一一對(duì) 應(yīng)的線程塊,每個(gè)線程塊具有與所述分割基數(shù)相同數(shù)量的線程。
[0014] 進(jìn)一步地,所述計(jì)算單元包括:第一計(jì)算模塊,用于計(jì)算所述擴(kuò)展矩陣中當(dāng)前行向 量的系數(shù)向量,所述系數(shù)向量包括所述擴(kuò)展矩陣中所述當(dāng)前行向量之外的其他行向量對(duì)于 所述當(dāng)前行向量的系數(shù);第二計(jì)算模塊,用于利用所述全局網(wǎng)格結(jié)構(gòu)中線程計(jì)算該線程在 所述擴(kuò)展矩陣的映射位置上的變換結(jié)果,用所述變換結(jié)果替換在所述擴(kuò)展矩陣的映射位置 上的數(shù)據(jù),得到替換后的擴(kuò)展矩陣;判斷模塊,用于判斷所述當(dāng)前行向量是否是所述擴(kuò)展矩 陣的最后一行行向量;所述第一計(jì)算模塊還用于如果判斷出所述當(dāng)前行向量不是所述擴(kuò)展 矩陣的最后一行行向量,則將所述當(dāng)前行向量的下一行行向量作為所述當(dāng)前行向量,計(jì)算 當(dāng)前行向量的系數(shù)向量;以及處理模塊,用于如果判斷出所述當(dāng)前行向量是所述擴(kuò)展矩陣 的最后一行行向量,則對(duì)所述替換后的擴(kuò)展矩陣進(jìn)行單位化處理,得到所述計(jì)算結(jié)果。
[0015] 進(jìn)一步地,所述第一計(jì)算模塊包括:第一獲取子模塊,用于獲取所述當(dāng)前行向量的 對(duì)角位置數(shù)據(jù);第二獲取子模塊,用于獲取所述對(duì)角位置數(shù)據(jù)所在的列向量上的數(shù)據(jù);除 法子模塊,用于依次將對(duì)角位置數(shù)據(jù)與所述對(duì)角位置數(shù)據(jù)所在的列向量上的數(shù)據(jù)相除,得 到所述系數(shù)向量。
[0016] 進(jìn)一步地,所述矩陣求逆處理裝置還包括:第二建立單元,用于在利用所述全局網(wǎng) 格結(jié)構(gòu)中線程計(jì)算該線程在所述擴(kuò)展矩陣的映射位置上的變換結(jié)果之前,建立共享顯存空 間,所述共享顯存空間用于存儲(chǔ)所述當(dāng)前行向量的數(shù)據(jù);所述第二計(jì)算模塊還用于所述全 局網(wǎng)格結(jié)構(gòu)中線程從所述共享顯存空間調(diào)用所述當(dāng)前行向量的數(shù)據(jù)用于計(jì)算該線程在所 述擴(kuò)展矩陣的映射位置上的變換結(jié)果。
[0017] 根據(jù)本發(fā)明實(shí)施例,獲取經(jīng)過中央處理器擴(kuò)展后的擴(kuò)展矩陣,根據(jù)擴(kuò)展矩陣?yán)?統(tǒng)一計(jì)算設(shè)備架構(gòu)平臺(tái)構(gòu)建全局網(wǎng)格結(jié)構(gòu),利用全局網(wǎng)格結(jié)構(gòu)采用并行計(jì)算的方式依次對(duì) 擴(kuò)展矩陣的列向量進(jìn)行計(jì)算,采用串行計(jì)算的方式對(duì)擴(kuò)展矩陣的行向量的行間數(shù)據(jù)進(jìn)行計(jì) 算,得到計(jì)算結(jié)果,將計(jì)算結(jié)果輸出至中央處理器,其中,中央處理器從計(jì)算結(jié)果中提取逆 矩陣,解決了現(xiàn)有技術(shù)中矩陣求逆過程中計(jì)算效率低的問題,達(dá)到了提高矩陣求逆過程中 計(jì)算效率的效果。
【附圖說明】
[0018] 構(gòu)成本申請(qǐng)的一部分的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,本發(fā)明的示意性實(shí) 施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0019] 圖1是根據(jù)本發(fā)明實(shí)施例的矩陣求逆處理方法的流程圖;
[0020] 圖2是根據(jù)本發(fā)明實(shí)施例的全局網(wǎng)格結(jié)構(gòu)的示意圖;
[0021] 圖3是根