[發明專利]一種基于GPU并行加速的預條件共軛梯度區域網平差方法有效
| 申請號: | 201610117562.3 | 申請日: | 2016-03-02 |
| 公開(公告)號: | CN105808926B | 公開(公告)日: | 2017-10-03 |
| 發明(設計)人: | 鄭茂騰;朱俊鋒;熊小東 | 申請(專利權)人: | 中國地質大學(武漢) |
| 主分類號: | G06F19/00 | 分類號: | G06F19/00 |
| 代理公司: | 北京輕創知識產權代理有限公司11212 | 代理人: | 陳衛 |
| 地址: | 430074 湖北省武漢市洪山區魯磨路38*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 gpu 并行 加速 條件 共軛 梯度 區域 網平差 方法 | ||
1.一種基于GPU并行加速的預條件共軛梯度區域網平差方法,其特征在于,包括以下步驟:
S1、在CPU端啟動主程序,檢測并初始化可用GPU設備,獲取GPU設備信息,若存在可用GPU設備,則繼續下一步,否則退出;
S2、在CPU端導入區域網平差計算需要的原始數據,且將導入的原始數據進行時空基準統一,得到初始數據,所述原始數據至少包括初始內外方位元素數據以及點位數據;
S3、將初始數據從CPU端拷貝至GPU內存中,并在GPU端為各類中間數據分配內存空間,根據GPU的計算能力和初始數據的容量大小,在GPU端為第一核函數分配線程塊個數n1,每個塊包含的線程數m1,得到總線程個數N1=n1*m1;為第二核函數分配線程塊個數n2,每個塊包含的線程數m2,得到總線程個數N2=n2*m2;為第三核函數分配線程塊個數n3,每個塊包含的線程數m3,得到總線程個數N3=n3*m3;確定N1、N2和N3的值,為多任務并行計算做準備;
S4、進入區域網平差迭代流程:啟動GPU端的第一核函數計算法方程常數項向量c,所述第一核函數分為n1個線程塊,每個線程塊擁有m1個線程,組成共n1*m1=N1個線程,每一個線程分別讀取一個或多個像點對應的初始數據,各線程并行計算得到對應的法方程常數項向量c的一個分量,并在GPU端將各個法方程常數項向量c的分量累加,得到完整的法方程常數項向量c,然后將其拷貝回CPU端,作為步驟S6中殘差向量s的初值;
S5、啟動GPU端的第二核函數計算由預條件矩陣M的逆矩陣M-1與法方程常數項向量c相乘得到的矩陣-向量積M-1c,第二核函數分為n2個線程塊,每個區塊擁有m2個線程,組成共n2*m2=N2個線程,每一個線程分別讀取一個或多個像點對應的初始數據,計算預條件矩陣M對應的分量,并將該分量求逆并乘以法方程常數項向量c得到矩陣-向量積M-1c的一個分量,在GPU端將各個矩陣-向量積M-1c的分量累加,得到完整的矩陣-向量積M-1c,然后將其拷貝回CPU端,作為步驟S6中方向向量d的初值;
S6、進入預條件共軛梯度法迭代流程:對未知數改正數向量u、殘差向量s以及方向向量d進行初始化;
S7、啟動GPU端的第三核函數計算由法方程系數矩陣B與方向向量d相乘得到的矩陣-向量積Bd,第三核函數分為n3個區塊,每個區塊擁有m3個線程,組成共n3*m3=N3個線程,每一個線程分別讀取一個或多個像點對應的初始數據,各線程并行計算得到對應的法方程系數矩陣B的分量,并將該分量乘以方向向量d,得到法方程系數矩陣B與方向向量d的矩陣-向量積Bd分量,在GPU端將各矩陣-向量積Bd分量累加,得到完整的矩陣向量積Bd;
S8、根據預條件共軛梯度算法,以及本次迭代中的未知數改正數向量u,殘差向量s,方向向量d,預條件矩陣M以及法方程系數矩陣B,計算新的未知數改正數向量u、新的殘差向量s以及新的方向向量d;
S9、判斷此次預條件共軛梯度迭代是否符合預定收斂條件,若符合,則結束預條件共軛梯度迭代,輸出新的未知數改正數向量u,執行步驟S10;否則,返回步驟S7;
S10、判斷此次區域網平差迭代是否符合預定收斂條件,若符合,則結束區域網平差迭代,執行步驟S11,否則,將更新后的未知數改正數向量u從CPU拷貝至GPU,返回步驟S4;
S11、根據步驟S9中輸出的新的未知數改正數向量u,更新所有的未知數數值,并輸出所有的未知數數值。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國地質大學(武漢),未經中國地質大學(武漢)許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610117562.3/1.html,轉載請聲明來源鉆瓜專利網。
- 同類專利
- 專利分類
G06F 電數字數據處理
G06F19-00 專門適用于特定應用的數字計算或數據處理的設備或方法
G06F19-10 .生物信息學,即計算分子生物學中的遺傳或蛋白質相關的數據處理方法或系統
G06F19-12 ..用于系統生物學的建模或仿真,例如:概率模型或動態模型,遺傳基因管理網絡,蛋白質交互作用網絡或新陳代謝作用網絡
G06F19-14 ..用于發展或進化的,例如:進化的保存區域決定或進化樹結構
G06F19-16 ..用于分子結構的,例如:結構排序,結構或功能關系,蛋白質折疊,結構域拓撲,用結構數據的藥靶,涉及二維或三維結構的
G06F19-18 ..用于功能性基因組學或蛋白質組學的,例如:基因型–表型關聯,不均衡連接,種群遺傳學,結合位置鑒定,變異發生,基因型或染色體組的注釋,蛋白質相互作用或蛋白質核酸的相互作用





