專利名稱:Gpu/cpu協(xié)同方式可控震源數(shù)據(jù)相關(guān)處理設(shè)備及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種地震勘探數(shù)據(jù)預(yù)處理方法,特別是涉及一種GPU/CPU協(xié)同方式可控震源數(shù)據(jù)相關(guān)處理設(shè)備及方法。
背景技術(shù):
I、可控震源采集技術(shù)發(fā)展現(xiàn)狀及對(duì)地震勘探儀器的相關(guān)要求隨著地震勘探技術(shù)的發(fā)展和環(huán)保的要求日益提高,可控震源在地震勘探中使用越來越廣泛,但與脈沖資源相比,使用可控震源往往意味著野外作業(yè)時(shí)間的大大增加。為滿 足盡可能高密度的采樣并同時(shí)降低勘探成本的要求必須盡可能的提高可控震源的采集效率,縮短野外作業(yè)時(shí)間。目前利用可控震源采集較常用的技術(shù)有可控震源交替掃描,滑動(dòng)掃描,單臺(tái)震源獨(dú)立工作模式(ISS),多組滑動(dòng)多套相隔一定距離同步技術(shù)(DSSS)、高保真可控震源采集技術(shù)等。這些可控震源的采集技術(shù)在方法原理和實(shí)現(xiàn)過程上不盡相同,但共同點(diǎn)都需要采集儀器對(duì)地震信號(hào)進(jìn)行長(zhǎng)時(shí)間、大數(shù)據(jù)量的實(shí)時(shí)記錄,同時(shí)采集儀器需要有快速的數(shù)據(jù)處理能力以便對(duì)可控震源的原始記錄進(jìn)行疊前或疊后相關(guān)甚至從多組震源的相干記錄中分離出單臺(tái)震源的記錄。以高保真可控震源采集技術(shù)(HFVS)為例HFVS技術(shù)是以采集到的每臺(tái)震源實(shí)際運(yùn)動(dòng)的信號(hào)來進(jìn)行數(shù)據(jù)反演,替代了傳統(tǒng)的以參考信號(hào)進(jìn)行的互相關(guān)處理,從而有效地減少了諧波畸變對(duì)地震資料品質(zhì)的影響。同時(shí)由于HFVS采集采用多臺(tái)震源同時(shí)激發(fā),而且具有將多臺(tái)震源采集的記錄分離為單臺(tái)震源激發(fā)記錄的特有分離技術(shù)。但由于目前的地震采集系統(tǒng)對(duì)可控震源數(shù)據(jù)的處理方式和處理能力的限制,采集數(shù)據(jù)的分離是在室內(nèi)完成的,現(xiàn)場(chǎng)儀器記錄的是未相關(guān)記錄,而且現(xiàn)場(chǎng)儀器記錄的數(shù)據(jù)量將是常規(guī)地震采集的10 20倍,數(shù)據(jù)量巨大。大大浪費(fèi)了磁帶,磁盤存儲(chǔ)空間并影響了勘探效率。總之,可控震源技術(shù)的發(fā)展對(duì)地震采集儀器的實(shí)時(shí)處理能力提出了迫切的要求海量的數(shù)據(jù)管理、快速的運(yùn)算速度、相應(yīng)的去噪處理和相應(yīng)的數(shù)據(jù)分離模塊。2、目前常用地震儀的可控震源數(shù)據(jù)相關(guān)處理現(xiàn)狀目前較常用的地震采集儀器對(duì)可控震源的數(shù)據(jù)進(jìn)行處理(相關(guān)、疊加)通常采用兩種模式進(jìn)行1、數(shù)據(jù)傳送至服務(wù)器,由服務(wù)器中的軟件進(jìn)行。2、在采集系統(tǒng)上加入DSP模塊,由DSP進(jìn)行處理后再傳入服務(wù)器。目前地震儀的實(shí)時(shí)帶道指儀器在采集周期內(nèi)可將所有采樣數(shù)據(jù)傳回至儀器中心記錄單元,而數(shù)據(jù)的處理工作(解編、解壓縮或可控震源的數(shù)據(jù)處理)和磁盤、磁帶記錄可以在上次震動(dòng)的采集周期結(jié)束與下次震動(dòng)開始的時(shí)間間隔內(nèi)完成。如果兩次震動(dòng)之間的時(shí)間間隔過短則會(huì)有越來越多的數(shù)據(jù)在內(nèi)存單元等待處理。采集時(shí)間越長(zhǎng),道數(shù)越多,采樣點(diǎn)越密則需要進(jìn)行處理的數(shù)據(jù)量越多,在處理和記錄速度無法較好解決的情況下只有不斷延長(zhǎng)兩次震動(dòng)之間的間隔,減慢了施工的效率。顯而易見,在整個(gè)地震采集系統(tǒng)中加入一個(gè)速度盡可能快的數(shù)據(jù)處理單元是地震采集儀器往更高施工效率方向發(fā)展的一個(gè)必須的且行之有效的方案。3、圖形處理器(GPU)在數(shù)值計(jì)算方面的進(jìn)展及GPU/CPU混合計(jì)算技術(shù)的應(yīng)用GPU(圖形處理器)的原始功能是用于圖形加速處理,以減少圖形處理對(duì)CPU的依賴。今天,GPU已經(jīng)不再局限于3D圖形處理了,GPU通用計(jì)算技術(shù)發(fā)展已經(jīng)引起業(yè)界不少的關(guān)注,事實(shí)也證明在浮點(diǎn)運(yùn)算、并行計(jì)算等部分計(jì)算方面,GPU可以提供數(shù)十倍乃至于上百倍于CPU的性能。現(xiàn)在用于計(jì)算的GPU被稱為“大規(guī)模多線程并行處理器”或叫GPU計(jì)算機(jī)。目前,GPU計(jì)算已經(jīng)在石油勘探、天文、氣象等很多行業(yè)上比較成熟的使用,并且已經(jīng)是高性能科學(xué)計(jì)算的引領(lǐng)方向。GPU通用計(jì)算方面的標(biāo)準(zhǔn)目前有OPEN CL、CUDA、ATI STREAM等。使用這些并行編程標(biāo)準(zhǔn)軟件開發(fā)人員可以快速的開發(fā)出可以在GPU上進(jìn)行并行計(jì)算的計(jì)算機(jī)程序。GPU計(jì)算有著邏輯運(yùn)算等方面的計(jì)算缺陷,而GPU/CPU協(xié)同并行計(jì)算是指在硬件上將GPU和CPU兩種不同架構(gòu)的處理器結(jié)合在一起,在應(yīng)用程序中由CPU負(fù)責(zé)執(zhí)行順序型的代碼和邏輯運(yùn)算,而由GPU來負(fù)責(zé)密集型的并行計(jì)算,CPU和GPU各司其職,大幅度提高總體的計(jì)算效能。總之GPU在各行業(yè)的應(yīng)用都帶來了驚人效果,它大大提高了計(jì)算效能,同時(shí)節(jié)省了硬件成本和能源使用,是一場(chǎng)數(shù)據(jù)計(jì)算的革命
發(fā)明內(nèi)容
本發(fā)明目的在于克服現(xiàn)有技術(shù)的上述缺陷,提供一種GPU/CPU協(xié)同方式可控震源數(shù)據(jù)相關(guān)處理設(shè)備,本發(fā)明目的還在于在該設(shè)備上實(shí)施的數(shù)據(jù)相關(guān)處理方法。為實(shí)現(xiàn)上述目的,本發(fā)明GPU/CPU協(xié)同方式可控震源數(shù)據(jù)相關(guān)處理設(shè)備,其特別之處在于由六大單元組成存儲(chǔ)器(內(nèi)存)、存儲(chǔ)設(shè)備、圖形處理器GPU、中央處理器CPU、終端和野外數(shù)據(jù)采集接口 ;野外數(shù)據(jù)采集接口通過千兆光纜與野外部件相連采集地震野外數(shù)據(jù),由兩條綁定的千兆網(wǎng)線提供野外數(shù)據(jù)采集接口與CPU之間的連接,通過CPU主板上的高速接口連接GPU、存儲(chǔ)器和存儲(chǔ)設(shè)備,終端設(shè)備也連接在CPU主板上。由于引入了 GPU/CPU聯(lián)合海量數(shù)據(jù)相關(guān)處理技術(shù),使得數(shù)字地震儀器系統(tǒng)的可控震源相關(guān)技術(shù)部件結(jié)構(gòu)簡(jiǎn)單,可靠性提高;由于采用了通用部件,成本大大降低、系統(tǒng)升級(jí)能力也相應(yīng)提高。作為優(yōu)化,海量數(shù)據(jù)相關(guān)技術(shù)采用GPU/CPU聯(lián)合處理,由CPU完成野外數(shù)據(jù)的接收和編排、數(shù)據(jù)的存儲(chǔ)和組織、流程的控制、進(jìn)度的控制和顯示,由GPU完成相關(guān)算法的高速平行處理。作為優(yōu)化,存儲(chǔ)器用于野外采集數(shù)據(jù)的存放和與GPU之間的數(shù)據(jù)交換,存儲(chǔ)設(shè)備用于最終數(shù)據(jù)的存放,終端設(shè)備用于進(jìn)度控制和顯示,CPU作為控制中心完成對(duì)野外數(shù)據(jù)采集接口、GPU、存儲(chǔ)器、存儲(chǔ)設(shè)備和終端設(shè)備的控制和協(xié)調(diào)。所述野外數(shù)據(jù)采集接口采用專門開發(fā)的LandScan野外數(shù)據(jù)采集接口,與國(guó)際上在野外數(shù)據(jù)采集接口采用DSP進(jìn)行可控震源采集數(shù)據(jù)相關(guān)技術(shù)不同,本系統(tǒng)采用GPU/CPU聯(lián)合完成可控震源采集數(shù)據(jù)相關(guān)技術(shù),在本系統(tǒng)的野外數(shù)據(jù)采集接口沒有可控震源采集數(shù)據(jù)相關(guān)功能,所以具有結(jié)構(gòu)簡(jiǎn)單、成本低、可靠性高等特點(diǎn)。作為優(yōu)化,所述GPU為使用至少一塊tesla系列或其他支持CUDA的顯卡的GPU模塊;相關(guān)計(jì)算的程序運(yùn)用CUDA語(yǔ)言作為GPU上的代碼編制;進(jìn)行相關(guān)計(jì)算的CUDA程序代碼可以分為主機(jī)端代碼和設(shè)備端代碼兩部分;主機(jī)端代碼在CPU上運(yùn)行,設(shè)備端代碼在GPU上運(yùn)行;作為優(yōu)化,主機(jī)端代碼主要完成以下功能 啟動(dòng)CUDA程序,使用多個(gè)GPU時(shí)要加上設(shè)備號(hào); 為GPU分配顯存,用于存放原始的可控震源采樣數(shù)據(jù);
將內(nèi)存中的可控震源采樣點(diǎn)數(shù)據(jù)拷貝到已經(jīng)分配好的顯存中; 調(diào)用設(shè)備端的kernel函數(shù)進(jìn)行相關(guān)并行運(yùn)算,并將計(jì)算之后的結(jié)果寫到顯存中的對(duì)應(yīng)區(qū)域; 為CPU分配一塊新的內(nèi)存,用于存放GPU傳回來的輸出數(shù)據(jù); 將顯存中的結(jié)果回讀到內(nèi)存; 使用CPU把相關(guān)之后的地震數(shù)據(jù)進(jìn)行segy文件輸出; 釋放內(nèi)存(如需多次相關(guān)后結(jié)果疊加則暫不釋放)和顯存空間;
退出 CUDA ;設(shè)備端的代碼主要完成以下功能 從顯存讀取數(shù)據(jù)到GPU片內(nèi); 對(duì)數(shù)據(jù)進(jìn)行相關(guān)需要的乘加運(yùn)算; 把相關(guān)后的數(shù)據(jù)寫回顯存。作為優(yōu)化,數(shù)據(jù)由內(nèi)存拷貝到顯存后的運(yùn)算是循環(huán)多次進(jìn)行的矩陣乘法運(yùn)算;其中矩陣A表示由采集系統(tǒng)傳回到服務(wù)器的原始可控震源掃描信號(hào),ns表示采樣點(diǎn)個(gè)數(shù),ntr為采集道數(shù),矩陣B是一維的,為可控震源的參考信號(hào),nvp為參考信號(hào)的長(zhǎng)度,矩陣C為相關(guān)后的結(jié)果,矩陣大小為(ns-nvp) Xntr。作為優(yōu)化,a.在CPU管理下,由野外數(shù)據(jù)采集接口接收野外數(shù)據(jù);b.經(jīng)解編后存放于存儲(chǔ)器中(由CPU完成),直到完成數(shù)據(jù)采集;c.在CPU的控制下,把存儲(chǔ)器中的數(shù)據(jù)組合成數(shù)據(jù)流灌入GPU中;d.進(jìn)行并行化相關(guān)處理(由GPU完成);e.在CPU的控制下,將得到的結(jié)果返回存儲(chǔ)器;f.是否完成本激發(fā)點(diǎn)所有數(shù)據(jù)的處理,如果沒有,轉(zhuǎn)到C繼續(xù)處理g.經(jīng)編排并加上道頭數(shù)據(jù),成為標(biāo)準(zhǔn)的SEG-Y數(shù)據(jù)體(由CPU完成);h.在CPU的控制下,把標(biāo)準(zhǔn)的SEG-Y數(shù)據(jù)體存入存儲(chǔ)設(shè)備,完成采集數(shù)據(jù)的相關(guān)處理。在本發(fā)明GPU/CPU協(xié)同方式可控震源數(shù)據(jù)相關(guān)處理設(shè)備上實(shí)施的數(shù)據(jù)相關(guān)處理方法是海量數(shù)據(jù)相關(guān)技術(shù)采用GPU/CPU聯(lián)合處理,由CPU完成野外數(shù)據(jù)的接收和編排、數(shù)據(jù)的存儲(chǔ)和組織、流程的控制、進(jìn)度的控制和顯示,由GPU完成相關(guān)算法的高速平行處理。作為處理方法的優(yōu)化,a.在CPU管理下,由野外數(shù)據(jù)采集接口接收野外數(shù)據(jù);b.經(jīng)解編后存放于存儲(chǔ)器中(由CPU完成),直到完成數(shù)據(jù)采集;c.在CPU的控制下,把存儲(chǔ)器中的數(shù)據(jù)組合成數(shù)據(jù)流灌入GPU中;d.進(jìn)行并行化相關(guān)處理(由GPU完成);e.在CPU的控制下,將得到的結(jié)果返回存儲(chǔ)器;f.是否完成本激發(fā)點(diǎn)所有數(shù)據(jù)的處理,如果沒有,轉(zhuǎn)到C繼續(xù)處理g.經(jīng)編排并加上道頭數(shù)據(jù),成為標(biāo)準(zhǔn)的SEG-Y數(shù)據(jù)體(由CPU完成);h.在CPU的控制下,把標(biāo)準(zhǔn)的SEG-Y數(shù)據(jù)體存入存儲(chǔ)設(shè)備,完成采集數(shù)據(jù)的相關(guān)處理。作為處理方法的優(yōu)化,所述GPU為使用至少一塊tesla系列或其他支持CUDA的顯卡的GPU模塊;相關(guān)計(jì)算的程序運(yùn)用CUDA語(yǔ)言作為GPU上的代碼編制;進(jìn)行相關(guān)計(jì)算的CUDA程序代碼可以分為主機(jī)端代碼和設(shè)備端代碼兩部分;主機(jī)端代碼在CPU上運(yùn)行,設(shè)備端代碼在GPU上運(yùn)行;主機(jī)端代碼主要完成以下功能籲啟動(dòng)CUDA程序,使用多個(gè)GPU時(shí)要加上設(shè)備號(hào); 為GPU分配顯存,用于存放原始的可控震源采樣數(shù)據(jù); 將內(nèi)存中的可控震源采樣點(diǎn)數(shù)據(jù)拷貝到已經(jīng)分配好的顯存中; 調(diào)用設(shè)備端的kernel函數(shù)進(jìn)行相關(guān)并行運(yùn)算,并將計(jì)算之后的結(jié)果寫到顯存中的對(duì)應(yīng)區(qū)域; 為CPU分配一塊新的內(nèi)存,用于存放GPU傳回來的輸出數(shù)據(jù); 將顯存中的結(jié)果回讀到內(nèi)存; 使用CPU把相關(guān)之后的地震數(shù)據(jù)進(jìn)行segy文件輸出; 釋放內(nèi)存(如需多次相關(guān)后結(jié)果疊加則暫不釋放)和顯存空間; 退出 CUDA ;設(shè)備端的代碼主要完成以下功能 從顯存讀取數(shù)據(jù)到GPU片內(nèi); 對(duì)數(shù)據(jù)進(jìn)行相關(guān)需要的乘加運(yùn)算; 把相關(guān)后的數(shù)據(jù)寫回顯存。或者存儲(chǔ)器用于野外采集數(shù)據(jù)的存放和與GPU之間的數(shù)據(jù)交換,存儲(chǔ)設(shè)備用于最終數(shù)據(jù)的存放,終端設(shè)備用于進(jìn)度控制和顯示,CPU作為控制中心完成對(duì)野外數(shù)據(jù)采集接口、GPU、存儲(chǔ)器、存儲(chǔ)設(shè)備和終端設(shè)備的控制和協(xié)調(diào)。作為處理方法的優(yōu)化,數(shù)據(jù)由內(nèi)存拷貝到顯存后的運(yùn)算是循環(huán)多次進(jìn)行的矩陣乘法運(yùn)算;其中矩陣A表示由采集系統(tǒng)傳回到服務(wù)器的原始可控震源掃描信號(hào),ns表示采樣點(diǎn)個(gè)數(shù),ntr為采集道數(shù),矩陣B是一維的,為可控震源的參考信號(hào),nvp為參考信號(hào)的長(zhǎng)度,矩陣C為相關(guān)后的結(jié)果,矩陣大小為(ns-nvp) Xntr。采用上述技術(shù)方案后,本發(fā)明中的存儲(chǔ)器(內(nèi)存)不必再像傳統(tǒng)地震儀那樣選擇較大容量的內(nèi)存來提高帶道能力、采集時(shí)間長(zhǎng)度和采樣點(diǎn)密度。由于系統(tǒng)的數(shù)據(jù)處理速度非常快,采樣數(shù)據(jù)的處理時(shí)間遠(yuǎn)遠(yuǎn)小于采集周期,每次新的震動(dòng)開始前內(nèi)存基本都會(huì)被清空出來,不會(huì)出現(xiàn)多次震動(dòng)的數(shù)據(jù)擁堵在內(nèi)存中待處理的現(xiàn)象。本發(fā)明中的存儲(chǔ)設(shè)備與傳統(tǒng)地震儀中的存儲(chǔ)設(shè)備也有不同。傳統(tǒng)的地震儀在可控震源采集的情況下由于數(shù)據(jù)處理速度慢,但同時(shí)又要追求施工效率很多情況下都把可控震源的原始掃描信號(hào)直接記錄到存儲(chǔ)設(shè)備中,這時(shí)就需要巨大容量的磁盤或盤陣,或需要盡可能高速的磁帶存儲(chǔ)器,從而增加了采集系統(tǒng)成本。而本裝置中由于采用了幾乎零耗時(shí)的數(shù)據(jù)處理單元,可控震源施工時(shí)的數(shù)據(jù)量不會(huì)再是脈沖震源的幾倍或十幾倍,對(duì)存儲(chǔ)設(shè)備的要求會(huì)比傳統(tǒng)的地震儀大為降低。本發(fā)明中GPU模塊使用至少一塊tesla系列或其他支持CUDA的顯卡。具體配置標(biāo)準(zhǔn)根據(jù)地震儀器的帶道規(guī)模而做出調(diào)整。由于可控震源的相關(guān)運(yùn)算是比較適合并行一種計(jì)算,即使只有幾十個(gè)處理單元的顯卡也可以把相關(guān)計(jì)算的速度提高到百倍以上。相關(guān)計(jì)算的程序運(yùn)用CUDA語(yǔ)言作為GPU上的代碼編制,CUDA在多種硬件和操作系統(tǒng)平臺(tái)上都可以獲得很好的支持,這些設(shè)計(jì)都使整個(gè)采集裝置具有很好的可移植性。同時(shí),開發(fā)人員可以、快速的對(duì)CUDA語(yǔ)言編寫的可控震源數(shù)據(jù)處理的程序進(jìn)行修改和完善。與可控震源相關(guān)處理使用DSP的地震儀相比,本裝置可以盡可能多的增加與可控震源相關(guān)的數(shù)據(jù)的相關(guān)、疊加或分離等處理,以適應(yīng)各種可控震源采集技術(shù)的需要,大大提高了地震勘探儀器在可控震源采集時(shí)的帶道能力。因此,本發(fā)明GPU/CPU協(xié)同方式可控震源數(shù)據(jù)相關(guān)處理設(shè)備及方法能對(duì)可控震源的原始記錄進(jìn)行快速的相關(guān)等處理,具有可控震源相關(guān)技術(shù)部件結(jié)構(gòu)簡(jiǎn)單,可靠性提高,成本大大降低、數(shù)據(jù)處理能力顯著提高,系統(tǒng)升級(jí)能力也相應(yīng)提高,顯著提高地震儀器的實(shí)時(shí)帶道能力和采集效率的優(yōu)點(diǎn)。可廣泛應(yīng)用于石油勘探、天然氣勘探、煤田勘探、礦產(chǎn)勘探、地質(zhì)工程勘察、地質(zhì)災(zāi)害監(jiān)測(cè)等方面。
圖1是本發(fā)明GPU/CPU協(xié)同方式可控震源數(shù)據(jù)相關(guān)處理方法的流程圖;圖2是本發(fā)明GPU/CPU協(xié)同方式可控震源數(shù)據(jù)相關(guān)處理設(shè)備的結(jié)構(gòu)示意圖;圖3是本發(fā)明GPU/CPU協(xié)同方式可控震源數(shù)據(jù)相關(guān)處理設(shè)備的GPU中可控震源數(shù)據(jù)相關(guān)運(yùn)算不意圖C = AXB ;圖4是兩種計(jì)算模式耗時(shí)對(duì)比示意;圖5是反射系數(shù)模型;圖6是30Hz雷克子波褶積模型;圖7是Chirp信號(hào)合成的可控震源記錄;圖8是相關(guān)后結(jié)果。
具體實(shí)施例方式本發(fā)明GPU/CPU協(xié)同方式可控震源數(shù)據(jù)相關(guān)處理設(shè)備由六大單元組成存儲(chǔ)器(或者內(nèi)存)Cl、存儲(chǔ)設(shè)備C2、圖形處理器GPU、中央處理器CPU、終端C5和野外數(shù)據(jù)采集接口 C6 ;野外數(shù)據(jù)采集接口 C6通過千兆光纜與野外部件CS相連采集地震野外數(shù)據(jù),由兩條綁定的千兆網(wǎng)線提供野外數(shù)據(jù)采集接口 C6與CPU之間的連接,通過CPU主板上的高速接口連接GPU、存儲(chǔ)器Cl和存儲(chǔ)設(shè)備C2,終端C5 (設(shè)備)也連接在CPU主板上。海量數(shù)據(jù)相關(guān)技術(shù)采用GPU/CPU聯(lián)合處理,由CPU完成野外數(shù)據(jù)的接收和編排、數(shù)據(jù)的存儲(chǔ)和組織、流程的控制、進(jìn)度的控制和顯示,由GPU完成相關(guān)算法的高速平行處理。存儲(chǔ)器用于野外采集數(shù)據(jù)的存放和與GPU之間的數(shù)據(jù)交換,存儲(chǔ)設(shè)備用于最終數(shù)據(jù)的存放,終端設(shè)備用于進(jìn)度控制和顯示,CPU作為控制中心完成對(duì)野外數(shù)據(jù)采集接口、GPU、存儲(chǔ)器、存儲(chǔ)設(shè)備和終端設(shè)備的控制和協(xié)調(diào)。所述GPU為使用至少一塊tesla系列或其他支持CUDA的顯卡的GPU模塊;相關(guān)計(jì)算的程序運(yùn)用CUDA語(yǔ)言作為GPU上的代碼編制;進(jìn)行相關(guān)計(jì)算的CUDA程序代碼可以分為主機(jī)端代碼和設(shè)備端代碼兩部分;主機(jī)端代碼在CPU上運(yùn)行,設(shè)備端代碼在GPU上運(yùn)行;主機(jī)端代碼主要完成以下功能籲啟動(dòng)CUDA程序,使用多個(gè)GPU時(shí)要加上設(shè)備號(hào); 為GPU分配顯存,用于存放原始的可控震源采樣數(shù)據(jù); 將內(nèi)存中的可控震源采樣點(diǎn)數(shù)據(jù)拷貝到已經(jīng)分配好的顯存中;
調(diào)用設(shè)備端的kernel函數(shù)進(jìn)行相關(guān)并行運(yùn)算,并將計(jì)算之后的結(jié)果寫到顯存中的對(duì)應(yīng)區(qū)域; 為CPU分配一塊新的內(nèi)存,用于存放GPU傳回來的輸出數(shù)據(jù); 將顯存中的結(jié)果回讀到內(nèi)存; 使用CPU把相關(guān)之后的地震數(shù)據(jù)進(jìn)行segy文件輸出; 釋放內(nèi)存(如需多次相關(guān)后結(jié)果疊加則暫不釋放)和顯存空間; 退出 CUDA ;設(shè)備端的代碼主要完成以下功能 從顯存讀取數(shù)據(jù)到GPU片內(nèi); 對(duì)數(shù)據(jù)進(jìn)行相關(guān)需要的乘加運(yùn)算; 把相關(guān)后的數(shù)據(jù)寫回顯存。數(shù)據(jù)由內(nèi)存拷貝到顯存后的運(yùn)算是循環(huán)多次進(jìn)行的矩陣乘法運(yùn)算;其中矩陣A表示由采集系統(tǒng)傳回到服務(wù)器的原始可控震源掃描信號(hào),ns表示采樣點(diǎn)個(gè)數(shù),ntr為采集道數(shù),矩陣B是一維的,為可控震源的參考信號(hào),nvp為參考信號(hào)的長(zhǎng)度,矩陣C為相關(guān)后的結(jié)果,矩陣大小為(ns-nvp) Xntr。a.在CPU管理下,由野外數(shù)據(jù)采集接口接收野外數(shù)據(jù);b.經(jīng)解編后存放于存儲(chǔ)器中(由CPU完成),直到完成數(shù)據(jù)采集;c.在CPU的控制下,把存儲(chǔ)器中的數(shù)據(jù)組合成數(shù)據(jù)流灌入GPU中;d.進(jìn)行并行化相關(guān)處理(由GPU完成);e.在CPU的控制下,將得到的結(jié)果返回存儲(chǔ)器;f.是否完成本激發(fā)點(diǎn)所有數(shù)據(jù)的處理,如果沒有,轉(zhuǎn)到C繼續(xù)處理g.經(jīng)編排并加上道頭數(shù)據(jù),成為標(biāo)準(zhǔn)的SEG-Y數(shù)據(jù)體(由CPU完成);h.在CPU的控制下,把標(biāo)準(zhǔn)的SEG-Y數(shù)據(jù)體存入存儲(chǔ)設(shè)備,完成采集數(shù)據(jù)的相關(guān)處理。在本發(fā)明GPU/CPU協(xié)同方式可控震源相關(guān)數(shù)據(jù)相關(guān)處理設(shè)備上實(shí)施的數(shù)據(jù)相關(guān)處理方法是海量數(shù)據(jù)相關(guān)技術(shù)采用GPU/CPU聯(lián)合處理,由CPU完成野外數(shù)據(jù)的接收和編排、數(shù)據(jù)的存儲(chǔ)和組織、流程的控制、進(jìn)度的控制和顯示,由GPU完成相關(guān)算法的高速平行處 理。a.在CPU管理下,由野外數(shù)據(jù)采集接口接收野外數(shù)據(jù);b.經(jīng)解編后存放于存儲(chǔ)器中(由CPU完成),直到完成數(shù)據(jù)采集;c.在CPU的控制下,把存儲(chǔ)器中的數(shù)據(jù)組合成數(shù)據(jù)流灌入GPU中;d.進(jìn)行并行化相關(guān)處理(由GPU完成);e.在CPU的控制下,將得到的結(jié)果返回存儲(chǔ)器;f.是否完成本激發(fā)點(diǎn)所有數(shù)據(jù)的處理,如果沒有,轉(zhuǎn)到C繼續(xù)處理g.經(jīng)編排并加上道頭數(shù)據(jù),成為標(biāo)準(zhǔn)的SEG-Y數(shù)據(jù)體(由CPU完成);h.在CPU的控制下,把標(biāo)準(zhǔn)的SEG-Y數(shù)據(jù)體存入存儲(chǔ)設(shè)備,完成采集數(shù)據(jù)的相關(guān)處理。所述GPU為使用至少一塊tesla系列或其他支持CUDA的顯卡的GPU模塊;相關(guān)計(jì)算的程序運(yùn)用CUDA語(yǔ)言作為GPU上的代碼編制;進(jìn)行相關(guān)計(jì)算的CUDA程序代碼可以分為主機(jī)端代碼和設(shè)備端代碼兩部分;主機(jī)端代碼在CPU上運(yùn)行,設(shè)備端代碼在GPU上運(yùn)行;主機(jī)端代碼主要完成以下功能 啟動(dòng)CUDA程序,使用多個(gè)GPU時(shí)要加上設(shè)備號(hào); 為GPU分配顯存,用于存放原始的可控震源采樣數(shù)據(jù); 將內(nèi)存中的可控震源采樣點(diǎn)數(shù)據(jù)拷貝到已經(jīng)分配好的顯存中; 調(diào)用設(shè)備端的kernel函數(shù)進(jìn)行相關(guān)并行運(yùn)算,并將計(jì)算之后的結(jié)果寫到顯存中的對(duì)應(yīng)區(qū)域; 為CPU分配一塊新的內(nèi)存,用于存放GPU傳回來的輸出數(shù)據(jù); 將顯存中的結(jié)果回讀到內(nèi)存; 使用CPU把相關(guān)之后的地震數(shù)據(jù)進(jìn)行segy文件輸出; 釋放內(nèi)存(如需多次相關(guān)后結(jié)果疊加則暫不釋放)和顯存空間; 退出 CUDA ;設(shè)備端的代碼主要完成以下功能 從顯存讀取數(shù)據(jù)到GPU片內(nèi); 對(duì)數(shù)據(jù)進(jìn)行相關(guān)需要的乘加運(yùn)算; 把相關(guān)后的數(shù)據(jù)寫回顯存。存儲(chǔ)器用于野外采集數(shù)據(jù)的存放和與GPU之間的數(shù)據(jù)交換,存儲(chǔ)設(shè)備用于最終數(shù)據(jù)的存放,終端設(shè)備用于進(jìn)度控制和顯示,CPU作為控制中心完成對(duì)野外數(shù)據(jù)采集接口、GPU、存儲(chǔ)器、存儲(chǔ)設(shè)備和終端設(shè)備的控制和協(xié)調(diào)。更具體是本發(fā)明的GPU高速運(yùn)算模塊在可控震源采樣數(shù)據(jù)傳回到服務(wù)器后對(duì)數(shù)據(jù)進(jìn)行極其快速的處理,在很短的時(shí)間內(nèi)實(shí)現(xiàn)可控震源數(shù)據(jù)的相關(guān)、疊加或分離。使用了本產(chǎn)品的地震勘探采集系統(tǒng)的施工效率將會(huì)得到空前提高。參見附圖1,GPU/CPU可控震源數(shù)據(jù)相關(guān)系統(tǒng)由六大單元組成存儲(chǔ)器(內(nèi)存)、存儲(chǔ)設(shè)備、GPU(圖形處理器)、CPU(中央處理器)、終端和野外數(shù)據(jù)采集接口??煽卣鹪词┕で埃僮鲉T在客戶端需要對(duì)可控震源施工的相關(guān)參數(shù)進(jìn)行設(shè)置,主要包括
采集數(shù)據(jù)是否進(jìn)行相關(guān)處理。如果用戶選擇不進(jìn)行相關(guān)處理則服務(wù)器端在采樣周期結(jié)束獲得了采樣數(shù)據(jù)結(jié)束端標(biāo)志后直接將原始數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)格式輸出,不啟動(dòng)GPU相關(guān)程序。 是否進(jìn)行多次采樣數(shù)據(jù)疊加。如需疊加,是選擇相關(guān)后疊加還是多次數(shù)據(jù)疊加之后再進(jìn)行相關(guān)。 相關(guān)計(jì)算是否采用高保真技術(shù)。高保真技術(shù)是使用震源的實(shí)際運(yùn)動(dòng)信號(hào)和掃描信號(hào)進(jìn)行戶相關(guān),而傳統(tǒng)技術(shù)是使用參考信號(hào)進(jìn)行互相關(guān)。 是否使用滑動(dòng)掃描技術(shù)活I(lǐng)SS技術(shù)。如果采集時(shí)使用這些可控震源的新技術(shù)進(jìn)行,則相關(guān)程序相應(yīng)較為復(fù)雜。相關(guān)時(shí)需要提供多臺(tái)震源的各自參考信號(hào)或?qū)嶋H運(yùn)動(dòng)信號(hào)以期分離出單炮記錄。同時(shí)為減少計(jì)算量,每臺(tái)震源的信號(hào)只在連續(xù)掃描記錄中各自的掃描時(shí)間段內(nèi)進(jìn)行互相關(guān)。采集系統(tǒng)服務(wù)器在獲得一個(gè)采樣周期的采樣數(shù)據(jù)回傳完畢的信號(hào)后自動(dòng)調(diào)用相關(guān)函數(shù)。數(shù)據(jù)和上面所述的用戶配置以函數(shù)參數(shù)形式傳入。主要包括是否進(jìn)行相關(guān),掃描信號(hào)長(zhǎng)度及內(nèi)存地址,各可控震源參考信號(hào)內(nèi)存地址,各可控震源實(shí)際震動(dòng)信號(hào)內(nèi)存地址坐寸O
數(shù)據(jù)由內(nèi)存拷貝到顯存后的運(yùn)算是循環(huán)多次進(jìn)行的矩陣乘法運(yùn)算,參見附圖2。其中矩陣A表示由采集系統(tǒng)傳回到服務(wù)器的原始可控震源掃描信號(hào),ns表示采樣點(diǎn)個(gè)數(shù),ntr為采集道數(shù),矩陣B是一維的,為可控震源的參考信號(hào),nvp為參考信號(hào)的長(zhǎng)度,矩陣C為相關(guān)后的結(jié)果,矩陣大小為(ns-nvp) Xntr。為驗(yàn)證本技術(shù)對(duì)可控震源數(shù)據(jù)高速相關(guān)計(jì)算的有效性,選用了一塊具有普通計(jì)算能力的顯卡進(jìn)行數(shù)值試驗(yàn)。顯卡芯片型號(hào)為=GeForce 9800GT,SM(計(jì)算核心)數(shù)量為14,計(jì)算能力為 I. 1,顯存 512MB。CPU 型號(hào)為=Intel(R) Core (TM) 2Quad Q8200,主頻 2. 33GHz,內(nèi)存2. OGB0使用chirp模擬可控震源的激發(fā)信號(hào),與反射系數(shù)模型進(jìn)行褶積運(yùn)算獲得可控震源模擬地震剖面。Chirp信號(hào)長(zhǎng)度為12秒,采樣率為1ms,頻率由IHz遞增至100Hz,反射系數(shù)模型為5秒,Ims采樣。圖4-7分別為反射系數(shù)模型、使用雷克子波的合成地震記錄、使用chirp信號(hào)合成的可控震源模擬記錄和相關(guān)后的地震記錄。分別選取不同數(shù)量的地震道使用GPU和CPU兩種模式進(jìn)行相關(guān)計(jì)算,計(jì)算時(shí)間和加速比如見表I。從表I中可以看出,當(dāng)計(jì)算模較小時(shí)(小于200道),CPU計(jì)算的速度很快,GPU表現(xiàn)平平;當(dāng)規(guī)模較大時(shí),GPU加速效果顯著,產(chǎn)生了十幾倍到幾十倍的加速,而且規(guī)模越大,加速效果越明顯。5000道數(shù)據(jù)的相關(guān)計(jì)算GPU的加速比達(dá)到66倍。產(chǎn)生該現(xiàn)象的原因是,主機(jī)(host)內(nèi)存數(shù)據(jù)與GPU內(nèi)存數(shù)據(jù)交互(讀入、返回)需要一定的時(shí)間開銷,規(guī)模不大時(shí)這部分開銷對(duì)最終的計(jì)算時(shí)間有很大影響,只有當(dāng)數(shù)據(jù)規(guī)模較大時(shí),數(shù)據(jù)交互時(shí)間所占比例較小,GPU計(jì)算時(shí)間足以抵過這部分開銷,GPU加速的效果才比較突出。
權(quán)利要求
1.一種GPU/CPU協(xié)同方式可控震源數(shù)據(jù)相關(guān)處理設(shè)備,其特征在于由六大單元組成存儲(chǔ)器或者內(nèi)存、存儲(chǔ)設(shè)備、圖形處理器GPU、中央處理器CPU、終端和野外數(shù)據(jù)采集接口 ;野外數(shù)據(jù)采集接口通過千兆光纜與野外部件相連采集地震野外數(shù)據(jù),由兩條綁定的千兆網(wǎng)線提供野外數(shù)據(jù)采集接口與CPU之間的連接,通過CPU主板上的高速接口連接GPU、存儲(chǔ)器和存儲(chǔ)設(shè)備,終端設(shè)備也連接在CPU主板上。
2.根據(jù)權(quán)利要求I所述可控震源數(shù)據(jù)相關(guān)處理設(shè)備,其特征在于海量數(shù)據(jù)相關(guān)技術(shù)采用GPU/CPU聯(lián)合處理,由CPU完成野外數(shù)據(jù)的接收和編排、數(shù)據(jù)的存儲(chǔ)和組織、流程的控制、進(jìn)度的控制和顯示,由GPU 完成相關(guān)算法的高速平行處理。
3.根據(jù)權(quán)利要求I所述可控震源數(shù)據(jù)相關(guān)處理設(shè)備,其特征在于存儲(chǔ)器用于野外采集數(shù)據(jù)的存放和與GPU之間的數(shù)據(jù)交換,存儲(chǔ)設(shè)備用于最終數(shù)據(jù)的存放,終端設(shè)備用于進(jìn)度控制和顯示,CPU作為控制中心完成對(duì)野外數(shù)據(jù)采集接口、GPU、存儲(chǔ)器、存儲(chǔ)設(shè)備和終端設(shè)備的控制和協(xié)調(diào)。
4.根據(jù)權(quán)利要求I所述可控震源數(shù)據(jù)相關(guān)處理設(shè)備,其特征在于 a.在CPU管理下,由野外數(shù)據(jù)采集接口接收野外數(shù)據(jù); b.經(jīng)解編后存放于存儲(chǔ)器中,直到完成數(shù)據(jù)采集,此項(xiàng)功能由CPU完成; c.在CPU的控制下,把存儲(chǔ)器中的數(shù)據(jù)組合成數(shù)據(jù)流灌入GPU中; d.由GPU進(jìn)行并行化相關(guān)處理; e.在CPU的控制下,將得到的結(jié)果返回存儲(chǔ)器; f.是否完成本激發(fā)點(diǎn)所有數(shù)據(jù)的處理,如果沒有,轉(zhuǎn)到C繼續(xù)處理 g.經(jīng)編排并加上道頭數(shù)據(jù),成為標(biāo)準(zhǔn)的SEG-Y數(shù)據(jù)體,此項(xiàng)功能由CPU完成; h.在CPU的控制下,把標(biāo)準(zhǔn)的SEG-Y數(shù)據(jù)體存入存儲(chǔ)設(shè)備,完成采集數(shù)據(jù)的相關(guān)處理。
5.根據(jù)權(quán)利要求I所述可控震源數(shù)據(jù)相關(guān)處理設(shè)備,其特征在于所述GPU為使用至少一塊tesla系列或其他支持CUDA的顯卡的GPU模塊;相關(guān)計(jì)算的程序運(yùn)用CUDA語(yǔ)言作為GTO上的代碼編制;進(jìn)行相關(guān)計(jì)算的CUDA程序代碼可以分為主機(jī)端代碼和設(shè)備端代碼兩部分;主機(jī)端代碼在CPU上運(yùn)行,設(shè)備端代碼在GPU上運(yùn)行。
6.根據(jù)權(quán)利要求5所述可控震源數(shù)據(jù)相關(guān)處理設(shè)備,其特征在于主機(jī)端代碼主要完成以下功能 啟動(dòng)CUDA程序,使用多個(gè)GPU時(shí)要加上設(shè)備號(hào); 為GPU分配顯存,用于存放原始的可控震源采樣數(shù)據(jù); 籲將內(nèi)存中的可控震源采樣點(diǎn)數(shù)據(jù)拷貝到已經(jīng)分配好的顯存中; 調(diào)用設(shè)備端的kernel函數(shù)進(jìn)行相關(guān)并行運(yùn)算,并將計(jì)算之后的結(jié)果寫到顯存中的對(duì)應(yīng)區(qū)域; 為CPU分配一塊新的內(nèi)存,用于存放GPU傳回來的輸出數(shù)據(jù); 將顯存中的結(jié)果回讀到內(nèi)存; 使用CPU把相關(guān)之后的地震數(shù)據(jù)進(jìn)行segy文件輸出; 籲釋放內(nèi)存和顯存空間,如需多次相關(guān)后結(jié)果疊加則暫不釋放;退出CUDA ; 設(shè)備端的代碼主要完成以下功能 籲從顯存讀取數(shù)據(jù)到GPU片內(nèi); 對(duì)數(shù)據(jù)進(jìn)行相關(guān)需要的乘加運(yùn)算; 把相關(guān)后的數(shù)據(jù)寫回顯存。
7.根據(jù)權(quán)利要求6所述可控震源數(shù)據(jù)相關(guān)處理設(shè)備,其特征在于數(shù)據(jù)由內(nèi)存拷貝到顯存后的運(yùn)算是循環(huán)多次進(jìn)行的矩陣乘法運(yùn)算;其中矩陣A表示由采集系統(tǒng)傳回到服務(wù)器的原始可控震源掃描信號(hào),ns表示采樣點(diǎn)個(gè)數(shù),ntr為采集道數(shù),矩陣B是一維的,為可控震源的參考信號(hào),nvp為參考信號(hào)的長(zhǎng)度,矩陣C為相關(guān)后的結(jié)果,矩陣大小為(ns-nvp) Xntr0
8.在權(quán)利要求I所述GPU/CPU協(xié)同方式可控震源數(shù)據(jù)相關(guān)處理設(shè)備上實(shí)施的數(shù)據(jù)相關(guān)處理方法,其特征在于海量數(shù)據(jù)相關(guān)技術(shù)采用GPU/CPU聯(lián)合處理,由CPU完成野外數(shù)據(jù)的接收和編排、數(shù)據(jù)的存儲(chǔ)和組織、流程的控制、進(jìn)度的控制和顯示,由GPU完成相關(guān)算法的高速平行處理。
9.根據(jù)權(quán)利要求8所述可控震源數(shù)據(jù)相關(guān)處理方法,其特征在于 a.在CPU管理下,由野外數(shù)據(jù)采集接口接收野外數(shù)據(jù); b.經(jīng)解編后存放于存儲(chǔ)器中,直到完成數(shù)據(jù)采集,引功能由CPU完成; c.在CPU的控制下,把存儲(chǔ)器中的數(shù)據(jù)組合成數(shù)據(jù)流灌入GPU中; d.由GPU進(jìn)行并行化相關(guān)處理; e.在CPU的控制下,將得到的結(jié)果返回存儲(chǔ)器; f.是否完成本激發(fā)點(diǎn)所有數(shù)據(jù)的處理,如果沒有,轉(zhuǎn)到C繼續(xù)處理 g.經(jīng)編排并加上道頭數(shù)據(jù),成為標(biāo)準(zhǔn)的SEG-Y數(shù)據(jù)體,此項(xiàng)功能由CPU完成; h.在CPU的控制下,把標(biāo)準(zhǔn)的SEG-Y數(shù)據(jù)體存入存儲(chǔ)設(shè)備,完成采集數(shù)據(jù)的相關(guān)處理。
10.根據(jù)權(quán)利要求8所述可控震源數(shù)據(jù)相關(guān)處理方法,其特征在于所述GPU為使用至少一塊tesla系列或其他支持CUDA的顯卡的GPU模塊;相關(guān)計(jì)算的程序運(yùn)用CUDA語(yǔ)言作為GPU上的代碼編制;進(jìn)行相關(guān)計(jì)算的CUDA程序代碼可以分為主機(jī)端代碼和設(shè)備端代碼兩部分;主機(jī)端代碼在CPU上運(yùn)行,設(shè)備端代碼在GPU上運(yùn)行; 主機(jī)端代碼主要完成以下功能 啟動(dòng)CUDA程序,使用多個(gè)GPU時(shí)要加上設(shè)備號(hào); 為GPU分配顯存,用于存放原始的可控震源采樣數(shù)據(jù); 籲將內(nèi)存中的可控震源采樣點(diǎn)數(shù)據(jù)拷貝到已經(jīng)分配好的顯存中; 調(diào)用設(shè)備端的kernel函數(shù)進(jìn)行相關(guān)并行運(yùn)算,并將計(jì)算之后的結(jié)果寫到顯存中的對(duì)應(yīng)區(qū)域; 為CPU分配一塊新的內(nèi)存,用于存放GPU傳回來的輸出數(shù)據(jù); 將顯存中的結(jié)果回讀到內(nèi)存; 使用CPU把相關(guān)之后的地震數(shù)據(jù)進(jìn)行segy文件輸出; 籲釋放內(nèi)存(如需多次相關(guān)后結(jié)果疊加則暫不釋放)和顯存空間;退出CUDA ; 設(shè)備端的代碼主要完成以下功能 籲從顯存讀取數(shù)據(jù)到GPU片內(nèi); 對(duì)數(shù)據(jù)進(jìn)行相關(guān)需要的乘加運(yùn)算; 把相關(guān)后的數(shù)據(jù)寫回顯存。
或者存儲(chǔ)器用于野外采集數(shù)據(jù)的存放和與GPU之間的數(shù)據(jù)交換,存儲(chǔ)設(shè)備用于最終數(shù)據(jù)的存放,終端設(shè)備用于進(jìn)度控制和顯示,CPU作為控制中心完成對(duì)野外數(shù)據(jù)采集接口、GPU、存儲(chǔ)器、存儲(chǔ)設(shè)備和終端設(shè)備的控制和協(xié)調(diào)。
全文摘要
本發(fā)明涉及一種GPU/CPU協(xié)同方式可控震源數(shù)據(jù)相關(guān)處理設(shè)備及方法,為解決現(xiàn)有技術(shù)結(jié)構(gòu)復(fù)雜、可靠性差問題,其由六大單元組成存儲(chǔ)器或者內(nèi)存、存儲(chǔ)設(shè)備、圖形處理器GPU、中央處理器CPU、終端和野外數(shù)據(jù)采集接口;野外數(shù)據(jù)采集接口通過千兆光纜與野外部件相連采集地震野外數(shù)據(jù),由兩條綁定的千兆網(wǎng)線提供野外數(shù)據(jù)采集接口與CPU之間的連接,通過CPU主板上的高速接口連接GPU、存儲(chǔ)器和存儲(chǔ)設(shè)備,終端設(shè)備也連接在CPU主板上。其能對(duì)可控震源的原始記錄進(jìn)行快速的相關(guān)等處理,具有可控震源相關(guān)技術(shù)部件結(jié)構(gòu)簡(jiǎn)單,可靠性提高,成本大大降低、數(shù)據(jù)處理能力顯著提高,系統(tǒng)升級(jí)能力也相應(yīng)提高,顯著提高地震儀器的實(shí)時(shí)帶道能力和采集效率的優(yōu)點(diǎn)。
文檔編號(hào)G01V1/22GK102628956SQ20111008736
公開日2012年8月8日 申請(qǐng)日期2011年4月8日 優(yōu)先權(quán)日2011年4月8日
發(fā)明者劉光鼎, 劉寧, 尤桃如, 徐善輝, 郭建 申請(qǐng)人:中國(guó)科學(xué)院地質(zhì)與地球物理研究所, 北京吉奧菲斯科技有限責(zé)任公司