專利名稱:基于gpu眾核平臺的合成孔徑雷達并行成像方法
技術領域:
本發(fā)明涉及一種基于GPU眾核平臺的合成孔徑雷達成像方法及其并行實現(xiàn)。
背景技術:
合成孔徑雷達(SAR)是一種二維微波遙感成像雷達,這種雷達具有遠距離全天候 高分辨率成像、自動識別目標和先進的數(shù)字處理能力等特點。隨著SAR技術的發(fā)展,對SAR 圖像的成像精度和實時性的要求也越來越高,尤其軍用需求。一幅SAR圖像的獲得需要處 理海量的原始數(shù)據(jù),因而要想達到實時成像的目的,需要處理平臺具有十億次,甚至百億次 每秒的處理速度。完成這么大的數(shù)據(jù)量在單處理器的計算機上幾乎不可能實現(xiàn),因而需要 利用并行計算的技術。2007年,NVIDIA推出了新型架構的GPU,將GPU看作可以并行執(zhí)行多個線程的計 算設備,GPU作為協(xié)處理器,處理大量的并行運算,而且目前已經(jīng)做到一個芯片含有數(shù)百個 流處理器,浮點運算性能大大提高。然而,如此強大的計算設備如何用來完成對計算精度和 實時性都要求苛刻的SAR成像呢?
發(fā)明內容
本發(fā)明要解決的問題就是在包含成百上千個流處理器的GPU上并行、高效的實現(xiàn) SAR成像方法并在工程實踐中加以應用。本發(fā)明的技術方案包括以下步驟第一步計算回波數(shù)據(jù)所占存儲空間的大小,標記為A ;第二步在內存分配大小為A的存儲空間,標記為B ;第三步將回波數(shù)據(jù)從磁盤復制到內存B ;第四步在GPU的全局存儲器分配大小為A的存儲空間,標記為C ;第五步將回波數(shù)據(jù)從內存B復制到GPU的全局存儲器C ;第六步按照SAR成像算法,編寫第一個模塊的代碼a)根據(jù)該模塊運算的輸入輸出,在GPU的全局存儲器分配存儲空間D、E ;b)編寫該模塊的由GPU來執(zhí)行的內核函數(shù)的并行代碼,輸入輸出分別為D、E,中間 變量分配在隸屬于每一個線程塊的共享存儲器、每個線程私有的本地存儲器以及其他分布 在GPU的存儲空間;c)根據(jù)運算數(shù)據(jù)的大小和硬件的資源,設置內核函數(shù)執(zhí)行配置;d)在主函數(shù)中編寫CPU調用對應內核函數(shù)時所用的調用指令代碼;第七步按照上述方法,順序編寫完成SAR成像的各個模塊的程序,直到得到SAR 最終的成像結果;第八步在CPU內存分配大小為A的存儲空間,記為F ;第九步將成像結果從GPU復制到CPU的內存F,然后CPU將成像結果數(shù)據(jù)F進行 保存以待查看。
通過以上CPU與GPU的協(xié)作就完成了 SAR成像的并行實現(xiàn)。本發(fā)明的有益效果 首先,通過并行編程,實現(xiàn)了在GPU上的SAR并行成像,提高了程序的并行度,使得 運行效率很大的提高,運算時間大大減少;其次,在整個處理過程中,除數(shù)據(jù)的導入導出之外,所有的運算均是由GPU來并行 完成和實現(xiàn)的,充分利用了 GPU強大的計算能力,最大限度的提高了并行度;再有,整個處理過程中,在CPU與GPU之間只有兩次也是不可避免的兩次通信開 銷,即原始數(shù)據(jù)的導入和輸出結果的導出,而處理過程中在CPU與GPU之間是沒有數(shù)據(jù)通信 開銷的,因此,通信消耗在本方法中也壓縮到了最?。淮送?,在程序運行過程中,CPU和GPU的關系是CPU發(fā)號施令,通知GPU,然后GPU 并行完成所有運算,并保存運算結果,而運算的輸入輸出對于CPU而言是不可見的,因此, 本方法也是善于完成流程控制的CPU與專注于高密集計算的GPU的精誠合作的結晶。
圖1為本發(fā)明的基于GPU眾核平臺的合成孔徑雷達并行成像方法流程圖;
具體實施例方式基本思路是,首先將原始回波數(shù)據(jù)導入GPU的全局存儲器,然后由CPU發(fā)起運算請 求,由GPU來完成運算,按照這種模式一直計算,直到得到SAR的成像結果,然后將結果數(shù)據(jù) 導回內存,并由CPU完成結果保存。以在SAR系統(tǒng)中采用RD算法對圖像尺寸是4096 X 4096 的點目標來進行成像的應用為例,GPU平臺是NVIDIA的GPU,型號Quadro_FX_5600,實現(xiàn)主 要包括以下流程第一步計算回波數(shù)據(jù)所占存儲空間的大小,標記為=Size ;第二步在內存分配大小為size的存儲空間,記為Echo_H ;第三步將回波數(shù)據(jù)以復數(shù)形式從磁盤復制到內存Echo_H ;第四步在GPU的全局存儲器分配大小為size的存儲空間,記為Echo_D ;第五步通過函數(shù)cudaMemcpy將回波數(shù)據(jù)Echo_H從內存復制到GPU的Echo_D ;第六步按照RD算法原理,編寫第一個模塊的代碼a)根據(jù)該模塊運算的輸入輸出,在GPU的全局存儲器分配存儲空間idata、 odata ;b)編寫完成該模塊運算的內核函數(shù)的并行代碼,輸入輸出分別為idata、odata, 中間變量分配在隸屬于每一個線程塊的共享存儲器、每個線程私有的本地存儲器以及其他 分布在GPU的存儲空間;c)根據(jù)運算數(shù)據(jù)的大小和硬件的資源,設置內核函數(shù)執(zhí)行配置;d)在主函數(shù)中編寫CPU調用對應內核函數(shù)時所用的調用指令代碼;第七步按照上述方法,順序編寫完成SAR成像的各個模塊的程序,直到得到SAR 最終的成像結果;第八步在CPU內存分配大小為size的存儲空間,記為Result_H ;第九步將成像結果通過函數(shù)cudaMemcpy從GPU的全局存儲器復制到CPU的內存
4Result_H,然后CPU將成像結果數(shù)據(jù)Resultjl進行保存以待查看。遵循以上步驟,編寫完成整個RD算法程序,即完成了在GPU眾核平臺的RD并行算 法實現(xiàn)。在本方法中,運算的部分除數(shù)據(jù)的導入導出之外完全由GPU來并行實現(xiàn)而流程的 控制以及子函數(shù)的調用均是由CPU來發(fā)起和主導,因此實現(xiàn)了具有強大計算能力的GPU與 具有良好流程控制能力的CPU的有效結合,再加上對通信消耗最大限度的壓縮,使得SAR成 像的工程效率在引入本方法后顯著提升。
權利要求
一種基于GPU眾核平臺的合成孔徑雷達并行成像方法,其特征在于該方法包括以下步驟第一步計算回波數(shù)據(jù)所占存儲空間的大小,標記為A;第二步在內存分配大小為A的存儲空間,標記為B;第三步將回波數(shù)據(jù)從磁盤復制到內存B;第四步在GPU的全局存儲器分配大小為A的存儲空間,標記為C;第五步將回波數(shù)據(jù)從內存B復制到GPU的全局存儲器C;第六步按照SAR成像算法,編寫第一個模塊的代碼a)根據(jù)該模塊運算的輸入輸出,在GPU的全局存儲器分配存儲空間D、E;b)編寫該模塊的由GPU來執(zhí)行的內核函數(shù)的并行代碼,輸入輸出分別為D、E,中間變量分配在隸屬于每一個線程塊的共享存儲器、每個線程私有的本地存儲器以及其他分布在GPU的存儲空間;c)根據(jù)運算數(shù)據(jù)的大小和硬件的資源,設置內核函數(shù)執(zhí)行配置;d)在主函數(shù)中編寫CPU調用對應內核函數(shù)時所用的調用指令代碼;第七步按照上述方法,順序編寫完成SAR成像的各個模塊的程序,直到得到SAR最終的成像結果;第八步在CPU內存分配大小為A的存儲空間,記為F;第九步將成像結果從GPU復制到CPU的內存F,然后CPU將成像結果數(shù)據(jù)F進行保存以待查看。通過以上CPU與GPU的協(xié)作就完成了SAR成像的并行實現(xiàn)。
全文摘要
本發(fā)明公開了一種基于GPU眾核平臺的合成孔徑雷達并行成像方法,首先將原始回波數(shù)據(jù)導入GPU的全局存儲器,然后由CPU發(fā)起運算請求,由GPU來完成運算,按照這種模式計算,直到得到SAR的成像結果,然后將結果數(shù)據(jù)導回內存,并由CPU完成結果保存。本發(fā)明通過并行編程實現(xiàn)了在GPU上SAR成像的并行實現(xiàn),提高了程序的并行度,使得運行效率很大的提高,運算時間大大減少;在整個處理過程中,除數(shù)據(jù)的導入導出之外,所有的運算均是由GPU來并行完成和實現(xiàn)的,充分利用了GPU強大的計算能力,最大限度的提高了并行度。
文檔編號G06F9/38GK101937082SQ20091008837
公開日2011年1月5日 申請日期2009年7月2日 優(yōu)先權日2009年7月2日
發(fā)明者姚迪, 曾濤, 靳星星, 龍騰 申請人:北京理工大學