一種地震疊前時(shí)間偏移的計(jì)算方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及高性能計(jì)算、石油地震勘探領(lǐng)域,具體涉及一種基于CPU+GPU的地震疊前時(shí)間偏移方案。
【背景技術(shù)】
[0002]疊前時(shí)間偏移是復(fù)雜構(gòu)造成像最有效的方法之一,能適應(yīng)縱橫向速度變化較大的情況,適用于大傾角的偏移成像。疊前時(shí)間偏移已進(jìn)行了多年研宄,上世紀(jì)九十年代初期開始初步應(yīng)用,中后期在不少探區(qū)的地震勘探中發(fā)揮了重要作用,進(jìn)入本世紀(jì)后開始了較為廣泛的應(yīng)用,目前部分處理公司和計(jì)算中心已把該技術(shù)作為常規(guī)軟件加入到常規(guī)處理流程中,成為獲取保幅信息實(shí)現(xiàn)屬性分析、AVO/AVA/AVP反演和其它參數(shù)反演的重要步驟和依據(jù)。
[0003]疊前時(shí)間偏移每輸出一個(gè)地震道,就是一次海量運(yùn)算。以I毫秒采樣,6秒數(shù)據(jù)為例,一個(gè)地震道的輸出需要至少1000萬(wàn)道甚至更多(偏移孔徑?jīng)Q定)的輸入道,每一個(gè)點(diǎn)要做兩次均方根運(yùn)算以及兩次加法運(yùn)算,振幅補(bǔ)償兩次乘法運(yùn)算。如此計(jì)算下來(lái),實(shí)現(xiàn)一道偏移需要1000000X6000X2X (平方+加法+乘法)次數(shù)學(xué)運(yùn)算,計(jì)算量和需要處理的數(shù)據(jù)量都極其巨大!目前,人們往往使用大規(guī)模的服務(wù)器集群來(lái)進(jìn)行疊前偏移處理,其原理是將數(shù)據(jù)先分配到各個(gè)CPU核上,然后由各個(gè)CPU核單獨(dú)進(jìn)行計(jì)算,最后將結(jié)果匯總輸出。這種做法消耗了大量的時(shí)間、電力和維護(hù)費(fèi)用。而且,隨著人們對(duì)石油勘探地震資料處理的周期要求越來(lái)越短,精度要求越來(lái)越高,服務(wù)器集群的規(guī)模越做越大,在系統(tǒng)構(gòu)建成本、數(shù)據(jù)中心機(jī)房空間、內(nèi)存和I/o帶寬、功耗散熱和電力限制、可管理性、編程簡(jiǎn)易性、擴(kuò)展性、管理維護(hù)費(fèi)用等方面都面臨著巨大的挑戰(zhàn)。
[0004]綜上所述,亟待提出一種可以滿足地震勘探資料處理需求的疊前時(shí)間偏移系統(tǒng)。
【發(fā)明內(nèi)容】
[0005]本發(fā)明所要解決的技術(shù)問題是,提供一種地震疊前時(shí)間偏移的計(jì)算方法及系統(tǒng),以解決地震疊前時(shí)間偏移的性能低的問題。
[0006]為了解決上述技術(shù)問題,本發(fā)明公開一種地震疊前時(shí)間偏移的計(jì)算方法,包括:
[0007]地震疊前時(shí)間偏移的計(jì)算系統(tǒng)中每個(gè)計(jì)算節(jié)點(diǎn)收集本計(jì)算節(jié)點(diǎn)內(nèi)圖形處理器GPU配置信息;
[0008]如果計(jì)算節(jié)點(diǎn)根據(jù)所收集的GPU配置信息判斷本計(jì)算節(jié)點(diǎn)內(nèi)不包含GPU卡,則直接調(diào)用疊前時(shí)間偏移中央處理器CPU版本函數(shù)計(jì)算地震疊前時(shí)間偏移;
[0009]如果計(jì)算節(jié)點(diǎn)根據(jù)所收集的GPU配置信息判斷本計(jì)算節(jié)點(diǎn)內(nèi)包含GPU卡,則在調(diào)用疊前時(shí)間偏移CPU版本函數(shù)的同時(shí),根據(jù)本計(jì)算節(jié)點(diǎn)內(nèi)包含的GPU卡的類型,調(diào)用對(duì)應(yīng)的疊前時(shí)間偏移GPU版本函數(shù),協(xié)同計(jì)算地震疊前時(shí)間偏移。
[0010]可選地,上述方法中,所述GPU卡的類型至少包括費(fèi)米GPU和開普勒GPU。
[0011]可選地,上述方法中,計(jì)算節(jié)點(diǎn)內(nèi)包含的GPU卡的類型為費(fèi)米GPU時(shí),調(diào)用對(duì)應(yīng)的疊前時(shí)間偏移GPU版本函數(shù)為疊前時(shí)間偏移費(fèi)米GPU版本函數(shù)。
[0012]可選地,上述方法中,計(jì)算節(jié)點(diǎn)內(nèi)包含的GPU卡的類型為開普勒GPU時(shí),調(diào)用對(duì)應(yīng)的疊前時(shí)間偏移GPU版本函數(shù)為疊前時(shí)間偏移開普勒GPU版本函數(shù)。
[0013]可選地,上述方法中,所述對(duì)應(yīng)的疊前時(shí)間偏移GPU函數(shù),采用計(jì)算統(tǒng)一設(shè)備架構(gòu)CUDA編程模型,對(duì)偏移計(jì)算部分進(jìn)行GPU移植和優(yōu)化,設(shè)計(jì)偏移計(jì)算GPU內(nèi)核,調(diào)用快速傅里葉變換GPU庫(kù)進(jìn)行快速傅里葉變換FFT計(jì)算,計(jì)算完后,調(diào)用偏移計(jì)算GPU內(nèi)核。
[0014]可選地,上述方法中,所述疊前時(shí)間偏移CPU函數(shù)采用多個(gè)CPU核心并行計(jì)算FFT,再計(jì)算核心并行偏移計(jì)算。
[0015]可選地,上述方法還包括:
[0016]所述地震疊前時(shí)間偏移的計(jì)算系統(tǒng)采用并行存儲(chǔ)方式存儲(chǔ)地震道數(shù)據(jù),所有計(jì)算節(jié)點(diǎn)并行讀地震道數(shù)據(jù)。
[0017]本發(fā)明還公開了一種地震疊前時(shí)間偏移的計(jì)算系統(tǒng),至少包括:
[0018]下發(fā)單元,觸發(fā)各計(jì)算節(jié)點(diǎn)收集本計(jì)算節(jié)點(diǎn)內(nèi)圖形處理器GPU配置信息;
[0019]計(jì)算節(jié)點(diǎn),收集本計(jì)算節(jié)點(diǎn)內(nèi)GPU配置信息,如果根據(jù)所收集的GPU配置信息判斷本計(jì)算節(jié)點(diǎn)內(nèi)不包含GPU卡,則直接調(diào)用疊前時(shí)間偏移中央處理器CPU版本函數(shù),如果根據(jù)所收集的GPU配置信息判斷本計(jì)算節(jié)點(diǎn)內(nèi)包含GPU卡,則在調(diào)用疊前時(shí)間偏移CPU版本函數(shù)的同時(shí),根據(jù)本計(jì)算節(jié)點(diǎn)內(nèi)包含的GPU卡的類型,調(diào)用對(duì)應(yīng)的疊前時(shí)間偏移GPU版本函數(shù)。
[0020]可選地,上述系統(tǒng)中,所述GPU卡的類型至少包括費(fèi)米GPU和Ifepler GPU。
[0021 ] 可選地,上述系統(tǒng)中,計(jì)算節(jié)點(diǎn)內(nèi)包含的GPU卡的類型為費(fèi)米GPU時(shí),調(diào)用對(duì)應(yīng)的疊前時(shí)間偏移GPU版本函數(shù)為疊前時(shí)間偏移費(fèi)米GPU版本函數(shù)。
[0022]可選地,上述系統(tǒng)中,計(jì)算節(jié)點(diǎn)內(nèi)包含的GPU卡的類型為開普勒GPU時(shí),調(diào)用對(duì)應(yīng)的疊前時(shí)間偏移GPU版本函數(shù)為疊前時(shí)間偏移開普勒GPU版本函數(shù)。
[0023]可選地,上述系統(tǒng)中,所述對(duì)應(yīng)的疊前時(shí)間偏移GPU函數(shù),采用計(jì)算統(tǒng)一設(shè)備架構(gòu)CUDA編程模型,對(duì)偏移計(jì)算部分進(jìn)行GPU移植和優(yōu)化,設(shè)計(jì)偏移計(jì)算GPU內(nèi)核,調(diào)用快速傅里葉變換GPU庫(kù)進(jìn)行快速傅里葉變換FFT計(jì)算,計(jì)算完后,調(diào)用偏移計(jì)算GPU內(nèi)核。
[0024]可選地,上述系統(tǒng)中,所述疊前時(shí)間偏移CPU函數(shù)采用多個(gè)CPU核心并行計(jì)算FFT,再計(jì)算核心并行偏移計(jì)算。
[0025]可選地,上述系統(tǒng)中,所述地震疊前時(shí)間偏移的計(jì)算系統(tǒng)采用并行存儲(chǔ)方式存儲(chǔ)地震道數(shù)據(jù)。
[0026]本申請(qǐng)技術(shù)方案采用軟硬件一體化系統(tǒng)設(shè)計(jì),滿足了石油地震勘探資料處理的需求,一方面使疊前時(shí)間偏移能自適應(yīng)原有系統(tǒng),并且能自適應(yīng)新增系統(tǒng),使系統(tǒng)能擴(kuò)容升級(jí),并且不浪費(fèi)原有系統(tǒng)資源;另一方面提高了疊前時(shí)間偏移的計(jì)算性能,并節(jié)省功耗,降低機(jī)房構(gòu)建成本和管理、運(yùn)行、維護(hù)費(fèi)用。
【附圖說(shuō)明】
[0027]圖1為本實(shí)施例硬件平臺(tái)設(shè)計(jì)邏輯圖;
[0028]圖2為本實(shí)施例函數(shù)調(diào)用圖。
【具體實(shí)施方式】
[0029]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下文將結(jié)合附圖對(duì)本發(fā)明技術(shù)方案作進(jìn)一步詳細(xì)說(shuō)明。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)的實(shí)施例和實(shí)施例中的特征可以任意相互組合。
[0030]實(shí)施例1
[0031]本實(shí)施例提供一種地震疊前時(shí)間偏移系統(tǒng)的實(shí)現(xiàn)方法,主要包括如下操作:
[0032]地震疊前時(shí)間偏移的計(jì)算系統(tǒng)中每個(gè)計(jì)算節(jié)點(diǎn)收集本計(jì)算節(jié)點(diǎn)內(nèi)GPU配置信息;
[0033]如果計(jì)算節(jié)點(diǎn)根據(jù)所收集的GPU配置信息判斷本計(jì)算節(jié)點(diǎn)內(nèi)不包含GPU卡,則直接調(diào)用疊前時(shí)間偏移CPU版本函數(shù)計(jì)算地震疊前時(shí)間偏移;
[0034]如果計(jì)算節(jié)點(diǎn)根據(jù)所收集的GPU配置信息判斷本計(jì)算節(jié)點(diǎn)內(nèi)包含GPU卡,則在調(diào)用疊前時(shí)間偏移CPU版本函數(shù)的同時(shí),根據(jù)本計(jì)算節(jié)點(diǎn)內(nèi)包含的GPU卡的類型,調(diào)用對(duì)應(yīng)的疊前時(shí)間偏移GPU版本函數(shù),協(xié)同計(jì)算地震疊前時(shí)間偏移。
[0035]其中,本實(shí)施例所涉及的GPU卡的類型至少包括Fermi (費(fèi)米)GPU和K印Ier (開普勒)GPU。
[0036]例如,計(jì)算節(jié)點(diǎn)內(nèi)包含的GPU卡的類型為Fermi GPU時(shí),調(diào)用對(duì)應(yīng)的疊前時(shí)間偏移GI3U版本函數(shù)為疊前時(shí)間偏移Fermi GPU版本函數(shù)。同樣的,計(jì)算節(jié)點(diǎn)內(nèi)包含的GPU卡的類型為Kep I er GPU時(shí),調(diào)用對(duì)應(yīng)的疊前時(shí)間偏移GPU版本函數(shù)則為疊前時(shí)間偏移Kep I er GPU版本函數(shù)。
[0037]另外,本實(shí)施例中所涉及的地震疊前時(shí)間偏移的計(jì)算系統(tǒng)采用并行存儲(chǔ)方式存儲(chǔ)地震道數(shù)據(jù),所有計(jì)算節(jié)點(diǎn)并行讀地震道數(shù)據(jù),再進(jìn)行地震疊前時(shí)間偏移計(jì)算。
[0038]還要說(shuō)明的是,在上述方法的基礎(chǔ)上,還可以包括搭建疊前時(shí)間偏