国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于圖形處理器的計(jì)算網(wǎng)絡(luò)系統(tǒng)、方法及裝置的制作方法

      文檔序號(hào):6355259閱讀:300來(lái)源:國(guó)知局
      專利名稱:基于圖形處理器的計(jì)算網(wǎng)絡(luò)系統(tǒng)、方法及裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及高性能計(jì)算應(yīng)用技術(shù),尤其涉及基于圖形處理器的計(jì)算網(wǎng)絡(luò)系統(tǒng)、方 法及裝置。
      背景技術(shù)
      隨著圖形處理器(GPU,Graphic Processing Unit)體系結(jié)構(gòu)的不斷發(fā)展,利用GPU 進(jìn)行通用計(jì)算的方法被越來(lái)越多的學(xué)術(shù)和工業(yè)界所采用。GPU設(shè)備(顯卡)擁有計(jì)算能力 強(qiáng),顯示內(nèi)存吞吐量大等特點(diǎn),尤其適合于細(xì)粒度、高度并發(fā)的并行算法領(lǐng)域,在高性能計(jì) 算領(lǐng)域受到越來(lái)越多的關(guān)注。例如,石油行業(yè)高性能計(jì)算是典型的行業(yè)應(yīng)用。其中疊前時(shí)間偏移又是石油行業(yè) 重要的處理地震信息的方法,是以時(shí)間記錄的方式來(lái)處理地震資料信息,適用于地層速度 橫向變化不大的構(gòu)造。在現(xiàn)有的作為計(jì)算網(wǎng)絡(luò)系統(tǒng)中計(jì)算節(jié)點(diǎn)的服務(wù)器設(shè)備中,雖然也有引入GPU設(shè)備 應(yīng)用于譬如疊前時(shí)間偏移計(jì)算這類大型計(jì)算上,但這些GPU設(shè)備與服務(wù)器設(shè)備中的CPU設(shè) 備(主卡)只是簡(jiǎn)單的協(xié)同關(guān)系,即由CPU設(shè)備控制GPU設(shè)備,主要的計(jì)算操作由GPU設(shè)備 完成。顯然,這樣的工作模式并沒(méi)有充分利用CPU設(shè)備,工作效率較低。將GPU設(shè)備尤其是GPU集群應(yīng)用于計(jì)算網(wǎng)絡(luò)實(shí)現(xiàn)大型計(jì)算應(yīng)用是一項(xiàng)非常有意義 的工作。尤其是在引入GPU設(shè)備之后,需要設(shè)計(jì)一種軟件方法,使得CPU設(shè)備在控制GPU設(shè) 備的同時(shí),能夠參與計(jì)算,由此可以提高設(shè)備的工作效率,并避免由于引入GPU設(shè)備所引起 的負(fù)載不均衡等問(wèn)題,以及可以更加充分地利用GPU集群的性能優(yōu)勢(shì)。

      發(fā)明內(nèi)容
      本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種基于圖形處理器的計(jì)算網(wǎng)絡(luò)系統(tǒng)、方法及 裝置,能夠使得CPU設(shè)備在控制GPU設(shè)備的同時(shí)參與部分計(jì)算。為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種基于圖形處理器的計(jì)算網(wǎng)絡(luò)中的方 法,涉及計(jì)算網(wǎng)絡(luò)中的管理節(jié)點(diǎn)和多個(gè)計(jì)算節(jié)點(diǎn),該方法包括管理節(jié)點(diǎn)獲取計(jì)算網(wǎng)絡(luò)中計(jì)算節(jié)點(diǎn)的個(gè)數(shù),根據(jù)計(jì)算空間大小開(kāi)辟每一計(jì)算節(jié)點(diǎn) 的內(nèi)存;計(jì)算節(jié)點(diǎn)根據(jù)本節(jié)點(diǎn)的圖形處理器GPU設(shè)備的個(gè)數(shù)和CPU核數(shù)開(kāi)辟CPU計(jì)算線程 和GPU計(jì)算線程,并劃分計(jì)算空間數(shù)據(jù);管理節(jié)點(diǎn)將參與計(jì)算的數(shù)據(jù)廣播到各個(gè)計(jì)算節(jié)點(diǎn);CPU設(shè)備調(diào)用GPU計(jì)算線程與 GPU設(shè)備協(xié)同完成一部分計(jì)算,同時(shí)并行調(diào)用CPU計(jì)算線程完成另一部分計(jì)算。進(jìn)一步地,管理節(jié)點(diǎn)獲取計(jì)算網(wǎng)絡(luò)中計(jì)算節(jié)點(diǎn)的個(gè)數(shù),根據(jù)計(jì)算空間大小開(kāi)辟每 一計(jì)算節(jié)點(diǎn)的內(nèi)存,具體包括管理節(jié)點(diǎn)獲取計(jì)算網(wǎng)絡(luò)中計(jì)算節(jié)點(diǎn)的個(gè)數(shù)為M,根據(jù)計(jì)算空間大小為S為每個(gè)計(jì) 算節(jié)點(diǎn)各開(kāi)辟大小為S/M的內(nèi)存,用于各計(jì)算節(jié)點(diǎn)存儲(chǔ)本地的計(jì)算空間數(shù)據(jù)。
      進(jìn)一步地,計(jì)算節(jié)點(diǎn)根據(jù)本節(jié)點(diǎn)的GPU設(shè)備的個(gè)數(shù)和CPU核數(shù)開(kāi)辟CPU計(jì)算線程 和GPU計(jì)算線程,并劃分計(jì)算空間數(shù)據(jù),具體包括計(jì)算節(jié)點(diǎn)獲取本節(jié)點(diǎn)所有CPU設(shè)備的核數(shù)共為N_CPU,GPU設(shè)備個(gè)數(shù)為N_GPU,則開(kāi) 辟(N_CPU-N_GPU)個(gè)CPU計(jì)算線程和N_GPU個(gè)GPU線程;根據(jù)該N_CPU、該N_GPU及GPU設(shè) 備與CPU設(shè)備計(jì)算能力的比值N將計(jì)算空間數(shù)據(jù)按照(N_CPU-N_GPU) N N進(jìn)行劃分, 其中,CPU設(shè)備的計(jì)算空間數(shù)據(jù)大小為(N_CPU-N_GPU)/[(N_CPU-N_GPU)+N_GPU*N];GPU設(shè)備的計(jì)算空間數(shù)據(jù)大小為N*N_GPU/[(N_CPU-N_GPU)+N_GPU*N]。進(jìn)一步地,管理節(jié)點(diǎn)將參與計(jì)算的數(shù)據(jù)廣播到各個(gè)計(jì)算節(jié)點(diǎn),具體包括管理節(jié)點(diǎn)利用消息傳輸接口并行地將參與計(jì)算的數(shù)據(jù)廣播到計(jì)算節(jié)點(diǎn)。進(jìn)一步地,CPU設(shè)備調(diào)用GPU計(jì)算線程與GPU設(shè)備協(xié)同完成一部分計(jì)算,同時(shí)并行 調(diào)用CPU計(jì)算線程完成另一部分計(jì)算,具體包括CPU設(shè)備調(diào)用GPU計(jì)算線程,初始化GPU設(shè)備,向GPU設(shè)備傳遞計(jì)算空間數(shù)據(jù);在 通過(guò)一個(gè)接收線程接收到數(shù)據(jù)后,控制GPU設(shè)備將該數(shù)據(jù)對(duì)于劃分給GPU設(shè)備的計(jì)算空間 數(shù)據(jù)進(jìn)行相應(yīng)部分的計(jì)算,直至對(duì)所有接收的數(shù)據(jù)計(jì)算結(jié)束;同時(shí)并行調(diào)用CPU計(jì)算線程 用接收到的數(shù)據(jù)對(duì)于劃分給CPU設(shè)備的計(jì)算空間數(shù)據(jù)進(jìn)行相應(yīng)部分的計(jì)算,直至所有接收 的數(shù)據(jù)計(jì)算結(jié)束。進(jìn)一步地,GPU計(jì)算線程在GPU設(shè)備中開(kāi)辟兩塊緩沖區(qū)用于緩存數(shù)據(jù),并創(chuàng)建兩個(gè)流標(biāo)志;當(dāng) 具有第一流標(biāo)志的數(shù)據(jù)到來(lái)后向第一緩存區(qū)傳輸,并調(diào)用GPU計(jì)算核心用該第一緩存區(qū)的 數(shù)據(jù)對(duì)于計(jì)算空間數(shù)據(jù)進(jìn)行計(jì)算;當(dāng)具有第二流標(biāo)志的數(shù)據(jù)到來(lái)后向第二緩存區(qū)傳輸,并 調(diào)用GPU計(jì)算核心用該第二緩存區(qū)的數(shù)據(jù)對(duì)計(jì)算空間數(shù)據(jù)進(jìn)行計(jì)算。進(jìn)一步地,還涉及計(jì)算網(wǎng)絡(luò)的存儲(chǔ)設(shè)備;CPU設(shè)備調(diào)用GPU計(jì)算線程控制GPU設(shè)備完成相應(yīng)的計(jì)算后,還包括導(dǎo)出計(jì)算的 計(jì)算空間數(shù)據(jù),以及釋放GPU資源;在并行調(diào)用CPU計(jì)算線程完成相應(yīng)的計(jì)算后,還包括將CPU計(jì)算線程與GPU計(jì)算 線程各自計(jì)算的計(jì)算空間數(shù)據(jù)寫(xiě)回該存儲(chǔ)設(shè)備。進(jìn)一步地,該基于圖形處理器的計(jì)算網(wǎng)絡(luò)為疊前時(shí)間偏移計(jì)算網(wǎng)絡(luò),該計(jì)算空間 數(shù)據(jù)為成像空間數(shù)據(jù),參與計(jì)算的數(shù)據(jù)為參與計(jì)算的道數(shù)據(jù)。為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種基于圖形處理器的計(jì)算網(wǎng)絡(luò)系統(tǒng),包 括管理節(jié)點(diǎn)、多個(gè)計(jì)算節(jié)點(diǎn)以及存儲(chǔ)設(shè)備,其中管理節(jié)點(diǎn),用于獲取計(jì)算網(wǎng)絡(luò)中計(jì)算節(jié)點(diǎn)的個(gè)數(shù),根據(jù)計(jì)算空間大小開(kāi)辟每一計(jì) 算節(jié)點(diǎn)的內(nèi)存;將從存數(shù)設(shè)備讀取的參與計(jì)算的數(shù)據(jù)廣播到各個(gè)計(jì)算節(jié)點(diǎn); 計(jì)算節(jié)點(diǎn),用于根據(jù)本節(jié)點(diǎn)的圖形處理器GPU設(shè)備的個(gè)數(shù)和CPU核數(shù)開(kāi)辟CPU計(jì) 算線程和GPU計(jì)算線程,并劃分計(jì)算空間數(shù)據(jù);通過(guò)調(diào)用GPU計(jì)算線程與GPU設(shè)備協(xié)同完成 一部分計(jì)算,通過(guò)并行調(diào)用CPU計(jì)算線程完成另一部分計(jì)算;
      存儲(chǔ)設(shè)備,至少用于存儲(chǔ)參與計(jì)算的數(shù)據(jù)。
      進(jìn)一步地,計(jì)算網(wǎng)絡(luò)系統(tǒng)為疊前時(shí)間偏移計(jì)算網(wǎng)絡(luò)系統(tǒng),計(jì)算空間數(shù)據(jù)為成像空 間數(shù)據(jù),參與計(jì)算的數(shù)據(jù)為參與計(jì)算的道數(shù)據(jù);管理節(jié)點(diǎn)獲取計(jì)算節(jié)點(diǎn)的個(gè)數(shù)為M,根據(jù)成像空間大小為S為每個(gè)計(jì)算節(jié)點(diǎn)各開(kāi) 辟大小為S/M的內(nèi)存,用于各計(jì)算節(jié)點(diǎn)存儲(chǔ)本地的成像空間數(shù)據(jù);計(jì)算節(jié)點(diǎn)獲取本節(jié)點(diǎn)所有CPU設(shè)備的核數(shù)共為N_CPU,GPU設(shè)備個(gè)數(shù)為N_GPU,則 開(kāi)辟(N_CPU-N_GPU)個(gè)CPU計(jì)算線程和N_GPU個(gè)GPU線程;根據(jù)N_CPU、N_GPU及GPU設(shè)備 與CPU設(shè)備計(jì)算能力的比值N將成像空間數(shù)據(jù)按照(N_CPU-N_GPU) N N進(jìn)行劃分,其 中,CPU設(shè)備的成像空間數(shù)據(jù)大小為(N_CPU-N_GPU)/[(N_CPU_N_GPU)+N_GPU*N];GPU設(shè)備成像空間數(shù)據(jù)大小為N*N_GPU/[(N_CPU_N_GPU)+N_GPU*N]。進(jìn)一步地,管理節(jié)點(diǎn)利用消息傳輸接口(MPI)并行地將參與計(jì)算的道數(shù)據(jù)廣播到計(jì)算節(jié)點(diǎn);CPU設(shè)備調(diào)用GPU計(jì)算線程初始化GPU設(shè)備,向GPU設(shè)備傳遞成像空間數(shù)據(jù);在通 過(guò)一個(gè)接收線程接收到道數(shù)據(jù)后,控制GPU設(shè)備用道數(shù)據(jù)對(duì)劃分給GPU設(shè)備的成像空間數(shù) 據(jù)進(jìn)行相應(yīng)部分的計(jì)算,直至對(duì)所有接收的道數(shù)據(jù)計(jì)算結(jié)束;同時(shí)并行調(diào)用CPU計(jì)算線程 用接收到的道數(shù)據(jù)對(duì)劃分給CPU設(shè)備的成像空間數(shù)據(jù)進(jìn)行相應(yīng)部分的計(jì)算,直至所有接收 的道數(shù)據(jù)計(jì)算結(jié)束。進(jìn)一步地,CPU設(shè)備調(diào)用的GPU計(jì)算線程在GPU設(shè)備中開(kāi)辟兩塊緩沖區(qū)用于緩存道數(shù)據(jù),并創(chuàng) 建兩個(gè)流標(biāo)志;當(dāng)具有第一流標(biāo)志的道數(shù)據(jù)到來(lái)后向第一緩存區(qū)傳輸,并調(diào)用GPU計(jì)算核 心用該第一緩存區(qū)的道數(shù)據(jù)對(duì)成像空間數(shù)據(jù)進(jìn)行計(jì)算;當(dāng)具有第二流標(biāo)志的道數(shù)據(jù)到來(lái)后 向第二緩存區(qū)傳輸,并調(diào)用GPU計(jì)算核心用該第二緩存區(qū)的道數(shù)據(jù)對(duì)成像空間數(shù)據(jù)進(jìn)行計(jì)
      笪弁。進(jìn)一步地,CPU設(shè)備調(diào)用GPU計(jì)算線程控制GPU設(shè)備完成相應(yīng)的計(jì)算后,還導(dǎo)出計(jì)算的成像空 間數(shù)據(jù),并釋放GPU資源;在并行調(diào)用CPU計(jì)算線程完成相應(yīng)的計(jì)算后,還將CPU計(jì)算線程 與GPU計(jì)算線程各自計(jì)算的成像空間數(shù)據(jù)寫(xiě)回存儲(chǔ)設(shè)備;存儲(chǔ)設(shè)備還存儲(chǔ)最終計(jì)算完成的成像空間數(shù)據(jù)。為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種基于圖形處理器的計(jì)算網(wǎng)絡(luò)中的計(jì)算 節(jié)點(diǎn)裝置,包括共同計(jì)算初始模塊、CPU設(shè)備、圖形處理單元(GPU)設(shè)備以及存儲(chǔ)模塊,其 中共同計(jì)算初始模塊,分別連接CPU設(shè)備和存儲(chǔ)模塊,用于根據(jù)獲取的本節(jié)點(diǎn)的CPU 核數(shù)和GPU設(shè)備數(shù)開(kāi)辟GPU計(jì)算線程和CPU計(jì)算線程,并在存儲(chǔ)模塊中劃分計(jì)算空間數(shù)據(jù); 將GPU計(jì)算線程、CPU計(jì)算線程和劃分的計(jì)算空間數(shù)據(jù)的地址輸出給CPU設(shè)備;CPU設(shè)備,分別連接GPU設(shè)備和存儲(chǔ)設(shè)備,用于根據(jù)GPU計(jì)算線程與GPU設(shè)備協(xié)同 完成一部分計(jì)算;根據(jù)CPU計(jì)算線程完成對(duì)收到的道數(shù)據(jù)和相應(yīng)地址的成像空間數(shù)據(jù)的另 一部分計(jì)算;
      GPU設(shè)備,用于在CPU設(shè)備的控制下完成對(duì)收到的數(shù)據(jù)和相應(yīng)的計(jì)算空間數(shù)據(jù)的 部分計(jì)算;存儲(chǔ)模塊,用于至少存儲(chǔ)初始的計(jì)算空間數(shù)據(jù)。進(jìn)一步地,該裝置為疊前時(shí)間偏移計(jì)算網(wǎng)絡(luò)中的計(jì)算節(jié)點(diǎn)裝置,計(jì)算空間數(shù)據(jù)為 成像空間數(shù)據(jù),參與計(jì)算的數(shù)據(jù)為參與計(jì)算的道數(shù)據(jù);共同計(jì)算初始模塊獲取本節(jié)點(diǎn)所有CPU設(shè)備的核數(shù)共為N_CPU,GPU設(shè)備個(gè)數(shù)為 N_GPU,則開(kāi)辟(N_CPU-N_GPU)個(gè)CPU計(jì)算線程和N_GPU個(gè)GPU線程;根據(jù)N_CPU、N_GPU及 GPU設(shè)備與CPU設(shè)備計(jì)算能力的比值N將成像空間數(shù)據(jù)按照(N_CPU-N_GPU) N N進(jìn)行 劃分,其中,CPU設(shè)備的成像空間數(shù)據(jù)大小為(N_CPU-N_GPU)/[(N_CPU_N_GPU)+N_GPU*N];GPU設(shè)備成像空間數(shù)據(jù)大小為N*N_GPU/[(N_CPU_N_GPU)+N_GPU*N]。進(jìn)一步地,CPU設(shè)備調(diào)用GPU計(jì)算線程初始化GPU設(shè)備,向GPU設(shè)備傳遞成像空間數(shù)據(jù);在通 過(guò)一個(gè)接收線程接收到道數(shù)據(jù)后,控制GPU設(shè)備用道數(shù)據(jù)對(duì)劃分給GPU設(shè)備的成像空間數(shù) 據(jù)進(jìn)行相應(yīng)部分的計(jì)算,直至對(duì)所有接收的道數(shù)據(jù)計(jì)算結(jié)束;同時(shí)并行調(diào)用CPU計(jì)算線程 用接收到的道數(shù)據(jù)對(duì)劃分給CPU設(shè)備的成像空間數(shù)據(jù)進(jìn)行相應(yīng)部分的計(jì)算,直至所有接收 的道數(shù)據(jù)計(jì)算結(jié)束。進(jìn)一步地,CPU設(shè)備還在控制GPU設(shè)備完成相應(yīng)的計(jì)算后,將計(jì)算的成像空間數(shù)據(jù)導(dǎo)出到存 儲(chǔ)模塊中,并釋放GPU資源;在完成本CPU設(shè)備相應(yīng)的計(jì)算并保存到存儲(chǔ)模塊后,將從該存 儲(chǔ)模塊中讀取的成像空間數(shù)據(jù)上傳給計(jì)算網(wǎng)絡(luò)中的存儲(chǔ)設(shè)備進(jìn)行存儲(chǔ)。進(jìn)一步地,CPU設(shè)備調(diào)用的GPU計(jì)算線程在GPU設(shè)備中開(kāi)辟兩塊緩沖區(qū)用于緩存道數(shù)據(jù),并創(chuàng) 建兩個(gè)流標(biāo)志;當(dāng)具有第一流標(biāo)志的道數(shù)據(jù)到來(lái)后向第一緩存區(qū)傳輸,并調(diào)用GPU計(jì)算核 心用該第一緩存區(qū)的道數(shù)據(jù)對(duì)成像空間數(shù)據(jù)進(jìn)行計(jì)算;當(dāng)具有第二流標(biāo)志的道數(shù)據(jù)到來(lái)后 向第二緩存區(qū)傳輸,并調(diào)用GPU計(jì)算核心用該第二緩存區(qū)的道數(shù)據(jù)對(duì)成像空間數(shù)據(jù)進(jìn)行計(jì)
      笪弁。本發(fā)明充分利用了 CPU/GPU混合異構(gòu)架構(gòu),通過(guò)構(gòu)建基于CPU/GPU混合架構(gòu)節(jié)點(diǎn) 的集群系統(tǒng),在傳統(tǒng)的CPU集群計(jì)算的基礎(chǔ)上,通過(guò)采用CPU/GPU協(xié)同計(jì)算以實(shí)現(xiàn)對(duì)GPU操 作的加速,同時(shí)通過(guò)采用CPU/GPU共同計(jì)算以實(shí)現(xiàn)大型計(jì)算應(yīng)用的最優(yōu)化。此外,通過(guò)采用 成像空間在CPU設(shè)備與GPU設(shè)備上的劃分來(lái)實(shí)現(xiàn)這兩類計(jì)算設(shè)備間的負(fù)載均衡,并通過(guò)采 用GPU設(shè)備的雙流雙緩沖策略以及GPU設(shè)備與IO開(kāi)銷的異步調(diào)用來(lái)達(dá)到時(shí)間的相互覆蓋, 從而實(shí)現(xiàn)了一個(gè)高效的GPU集群計(jì)算方案。


      圖1為本發(fā)明的基于圖形處理器的計(jì)算網(wǎng)絡(luò)系統(tǒng)實(shí)施例的架構(gòu)示意圖;圖2為圖1所示的系統(tǒng)實(shí)施例中CPU設(shè)備與GPU設(shè)備共同參與計(jì)算的示意圖3為圖1所示的系統(tǒng)實(shí)施例中CPU設(shè)備與GPU設(shè)備數(shù)據(jù)劃分方式示意圖;圖4為本發(fā)明的用于基于圖形處理器的計(jì)算網(wǎng)絡(luò)系統(tǒng)中的節(jié)點(diǎn)裝置實(shí)施例的結(jié) 構(gòu)框圖;圖5為本發(fā)明的用于基于圖形處理器的計(jì)算網(wǎng)絡(luò)中的方法實(shí)施例的流程圖。
      具體實(shí)施例方式以下結(jié)合附圖和優(yōu)選實(shí)施例對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)地闡述。下面例舉的實(shí) 施例僅用于說(shuō)明和解釋本發(fā)明,而不構(gòu)成對(duì)本發(fā)明技術(shù)方案的限制。如圖1所示,是本發(fā)明的基于圖形處理器的計(jì)算網(wǎng)絡(luò)系統(tǒng)實(shí)施例的架構(gòu);在該系 統(tǒng)實(shí)施例中,使用了 6個(gè)計(jì)算節(jié)點(diǎn)(即服務(wù)器節(jié)點(diǎn)0 5)、1個(gè)管理節(jié)點(diǎn)(即服務(wù)器節(jié)點(diǎn) 6)以及一個(gè)存儲(chǔ)設(shè)備,每個(gè)計(jì)算節(jié)點(diǎn)包含兩個(gè)CPU設(shè)備和兩個(gè)GPU設(shè)備,計(jì)算空間大小為 12GB ;計(jì)算節(jié)點(diǎn)之間通過(guò)以太網(wǎng)或高IB(InfiniBand)網(wǎng)與千兆交換機(jī)和萬(wàn)兆交換機(jī)互聯(lián); 其中管理節(jié)點(diǎn),用于在系統(tǒng)啟動(dòng)后獲取計(jì)算節(jié)點(diǎn)個(gè)數(shù),根據(jù)計(jì)算空間大小為計(jì)算節(jié)點(diǎn) 開(kāi)辟內(nèi)存;將從存儲(chǔ)設(shè)備中讀取的參與計(jì)算的數(shù)據(jù)廣播給各計(jì)算節(jié)點(diǎn);計(jì)算節(jié)點(diǎn),用于在系統(tǒng)啟動(dòng)后由CPU設(shè)備獲取本地的CPU核數(shù)和GPU設(shè)備數(shù),據(jù)此 開(kāi)辟CPU計(jì)算線程和GPU計(jì)算線程,并劃分計(jì)算空間數(shù)據(jù);其中GPU計(jì)算線程用于CPU設(shè)備 與GPU設(shè)備協(xié)同完成一部分計(jì)算;CPU計(jì)算線程則用于CPU設(shè)備完成另一部分計(jì)算;存儲(chǔ)設(shè)備,用于存儲(chǔ)最終計(jì)算完成的計(jì)算空間結(jié)果數(shù)據(jù)。譬如,將上述系統(tǒng)實(shí)施例運(yùn)用于石油行業(yè)的疊前時(shí)間偏移計(jì)算中,其中計(jì)算空間 例如為疊前時(shí)間偏移計(jì)算中的成像空間,參與計(jì)算的數(shù)據(jù)例如為道數(shù)據(jù)。管理節(jié)點(diǎn)獲取的計(jì)算節(jié)點(diǎn)個(gè)數(shù)為6,根據(jù)成像空間大小為12GB為每個(gè)計(jì)算節(jié)點(diǎn) 各開(kāi)辟2GB(12/6)內(nèi)存,用作各個(gè)計(jì)算節(jié)點(diǎn)本地的成像空間。管理節(jié)點(diǎn)利用消息傳輸接口 (MPI, Message Passing Interface)進(jìn)行粗粒度并行操作,將從存儲(chǔ)設(shè)備讀取的參與計(jì)算 的道數(shù)據(jù)廣播到各個(gè)計(jì)算節(jié)點(diǎn)。每個(gè)計(jì)算節(jié)點(diǎn)利用多線程進(jìn)行中粒度并發(fā)計(jì)算操作,其中計(jì)算線程的個(gè)數(shù)與節(jié)點(diǎn) 上CPU的核數(shù)相同;各計(jì)算節(jié)點(diǎn)是按照(SPMDJingle-ProgramMultiple-Data)模式進(jìn)行編 程,并使用額外的一個(gè)接收線程進(jìn)行道數(shù)據(jù)的接收和處理。每一計(jì)算節(jié)點(diǎn)的CPU設(shè)備獲知兩個(gè)CPU設(shè)備的核數(shù)總共為8,GPU設(shè)備個(gè)數(shù)為2, 因此兩個(gè)CPU設(shè)備共需開(kāi)辟6個(gè)CPU計(jì)算線程和2個(gè)GPU計(jì)算線程,如圖2所示。根據(jù)CPU 設(shè)備的核數(shù)N_CPU、GPU設(shè)備的個(gè)數(shù)N_GPU及GPU設(shè)備與CPU設(shè)備計(jì)算能力的比值N,將成像 空間按照6(N_CPU-N_GPU) N N在CPU設(shè)備和GPU設(shè)備上進(jìn)行劃分,如圖3所示,其中6 比值的成像空間數(shù)據(jù)為兩個(gè)CPU設(shè)備計(jì)算所用,即CPU設(shè)備成像空間大小為6/(6+2N)GB ;N 比值的成像空間數(shù)據(jù)為每一個(gè)GPU設(shè)備計(jì)算所用,即兩個(gè)GPU設(shè)備空間大小為N*2/(6+2N) GB。其中,GPU計(jì)算線程在系統(tǒng)啟動(dòng)后完成對(duì)GPU設(shè)備的初始化,并將劃分給GPU設(shè)備 的成像空間數(shù)據(jù)傳遞給GPU設(shè)備;在等待道數(shù)據(jù)到來(lái)后,將道數(shù)據(jù)傳遞給GPU設(shè)備中的計(jì)算 核心進(jìn)行相應(yīng)的計(jì)算,直至對(duì)所有到來(lái)的道數(shù)據(jù)計(jì)算完畢,將GPU計(jì)算核心計(jì)算的成像空 間數(shù)據(jù)導(dǎo)出,并釋放GPU資源。
      其中,CPU計(jì)算線程在等待道數(shù)據(jù)到來(lái)后將道數(shù)據(jù)傳遞給CPU計(jì)算核心進(jìn)行相應(yīng) 的計(jì)算,直至所有到來(lái)的道數(shù)據(jù)計(jì)算完畢,將CPU計(jì)算核心計(jì)算的成像空間數(shù)據(jù)導(dǎo)出。GPU計(jì)算線程的數(shù)據(jù)傳輸采用雙流、雙緩沖策略,即GPU計(jì)算線程首先在GPU設(shè)備 中開(kāi)辟兩塊緩沖區(qū)用于緩存道數(shù)據(jù),并創(chuàng)建兩個(gè)流標(biāo)志;當(dāng)具有第一流標(biāo)志的道數(shù)據(jù)到來(lái) 后向第一緩沖區(qū)傳輸,并調(diào)用GPU計(jì)算核心用該第一緩沖區(qū)的道數(shù)據(jù)對(duì)成像空間數(shù)據(jù)進(jìn)行 計(jì)算,上述操作為異步操作;當(dāng)具有第二流標(biāo)志的道數(shù)據(jù)到來(lái)后向第二緩沖區(qū)傳輸,并調(diào)用 GPU計(jì)算核心用該第二緩沖區(qū)的道數(shù)據(jù)對(duì)成像空間數(shù)據(jù)進(jìn)行計(jì)算;這樣可以形成第一流的 計(jì)算與第二流的傳輸在時(shí)間上相互覆蓋,由此提高工作效率。計(jì)算節(jié)點(diǎn)將本節(jié)點(diǎn)所處理的成像空間數(shù)據(jù)返回到存儲(chǔ)設(shè)備中進(jìn)行存儲(chǔ)。本發(fā)明針對(duì)上述系統(tǒng)實(shí)施例,相應(yīng)地還提供了計(jì)算節(jié)點(diǎn)裝置的實(shí)施例,其結(jié)構(gòu)如 圖4所示,包括共同計(jì)算初始模塊410、CPU設(shè)備420、GPU設(shè)備430以及存儲(chǔ)模塊440 ;其 中共同計(jì)算初始模塊410,分別連接CPU設(shè)備420和存儲(chǔ)模塊440,用于根據(jù)獲取的 本節(jié)點(diǎn)的CPU核數(shù)和GPU設(shè)備數(shù)開(kāi)辟GPU計(jì)算線程和CPU計(jì)算線程,并在存儲(chǔ)模塊440中 劃分計(jì)算空間數(shù)據(jù);將開(kāi)辟的計(jì)算線程和劃分的計(jì)算空間數(shù)據(jù)地址輸出給CPU設(shè)備420 ;CPU設(shè)備420,分別連接GPU設(shè)備420和存儲(chǔ)模塊440,用于根據(jù)GPU計(jì)算線程與 GPU設(shè)備協(xié)同完成一部分計(jì)算;根據(jù)CPU計(jì)算線程完成對(duì)收到的道數(shù)據(jù)和相應(yīng)地址的成像 空間數(shù)據(jù)的另一部分計(jì)算;GPU設(shè)備430,用于在CPU設(shè)備420的控制下完成對(duì)收到的數(shù)據(jù)和相應(yīng)的計(jì)算空間 數(shù)據(jù)的一部分計(jì)算;存儲(chǔ)模塊440,用于存儲(chǔ)初始的計(jì)算空間數(shù)據(jù),并存儲(chǔ)由CPU設(shè)備420和GPU設(shè)備 430分別計(jì)算的計(jì)算空間數(shù)據(jù)。CPU設(shè)備420還在控制GPU設(shè)備430完成相應(yīng)的計(jì)算后,將計(jì)算的成像空間數(shù)據(jù) 導(dǎo)出到存儲(chǔ)模塊440中,并釋放GPU資源;在本CPU設(shè)備完成相應(yīng)的計(jì)算并保存到存儲(chǔ)模塊 440后,將從存儲(chǔ)模塊440中讀取的計(jì)算空間數(shù)據(jù)上傳給計(jì)算網(wǎng)絡(luò)中的存儲(chǔ)設(shè)備進(jìn)行存儲(chǔ)。在上述裝置實(shí)施例中,要求GPU設(shè)備支持通用計(jì)算或統(tǒng)一計(jì)算設(shè)備架構(gòu)(CUDA, Compute Unified Device Architecture) / 幵放式計(jì)算語(yǔ)言(OpenCL)技術(shù)。本發(fā)明針對(duì)上述系統(tǒng)實(shí)施例,相應(yīng)地還提供了基于圖形處理器的計(jì)算網(wǎng)絡(luò)中的方 法實(shí)施例,其流程如圖5所示,包括510:管理節(jié)點(diǎn)獲取計(jì)算網(wǎng)絡(luò)中計(jì)算節(jié)點(diǎn)的個(gè)數(shù),根據(jù)計(jì)算空間大小開(kāi)辟每一計(jì)算 節(jié)點(diǎn)的內(nèi)存;例如將上述實(shí)施例運(yùn)用于石油行業(yè)的疊前時(shí)間偏移計(jì)算中,計(jì)算空間大小譬如為 疊前時(shí)間偏移計(jì)算中的成像空間大小。管理節(jié)點(diǎn)獲取的計(jì)算節(jié)點(diǎn)個(gè)數(shù)為6,每一計(jì)算節(jié)點(diǎn) 上具有兩個(gè)CPU設(shè)備和兩個(gè)GPU設(shè)備;根據(jù)成像空間大小為12GB,為每個(gè)計(jì)算節(jié)點(diǎn)各開(kāi)辟 2GB(12/6)內(nèi)存,用作各個(gè)計(jì)算節(jié)點(diǎn)本地的成像空間。520 計(jì)算節(jié)點(diǎn)根據(jù)本節(jié)點(diǎn)的GPU設(shè)備個(gè)數(shù)和CPU核數(shù)開(kāi)辟CPU計(jì)算線程和GPU計(jì) 算線程,并劃分計(jì)算空間數(shù)據(jù);例如,用于疊前時(shí)間偏移計(jì)算的計(jì)算節(jié)點(diǎn)根據(jù)CPU與GPU的計(jì)算能力,如在相同成 像空間下CPU與GPU處理相同道數(shù)據(jù)的時(shí)間比例為N 1,根據(jù)該N的數(shù)值進(jìn)行CPU設(shè)備和GPU設(shè)備對(duì)成像空間數(shù)據(jù)的劃分。假設(shè)CPU設(shè)備的核數(shù)總共為N_CPU,GPU設(shè)備的個(gè)數(shù)為 N_GPU,則分別屬于CPU設(shè)備與GPU設(shè)備成像空間數(shù)據(jù)的大小比值為(N_CPU-N_GPU) N_ GPU*N ;單個(gè)CPU線程的成像空間大小與單個(gè)GPU設(shè)備的成像空間大小比值為1 N ;圖3 則描述了 CPU設(shè)備與GPU設(shè)備對(duì)于成像空間數(shù)據(jù)的劃分方式。計(jì)算節(jié)點(diǎn)的兩個(gè)CPU設(shè)備的核數(shù)總共為8,GPU設(shè)備個(gè)數(shù)為2,因此CPU設(shè)備共需 開(kāi)辟6個(gè)CPU計(jì)算線程和2個(gè)GPU計(jì)算線程。根據(jù)CPU設(shè)備的核數(shù)8、GPU設(shè)備的個(gè)數(shù)2及 GPU設(shè)備與CPU設(shè)備計(jì)算能力的比值N,將成像空間數(shù)據(jù)按照6 N N進(jìn)行劃分,其中6 比值的成像空間數(shù)據(jù)為兩個(gè)CPU設(shè)備計(jì)算所用,即CPU設(shè)備成像空間大小為6/ (6+2N) GB ;N 比值的成像空間數(shù)據(jù)為每一個(gè)GPU設(shè)備計(jì)算所用,即兩個(gè)GPU設(shè)備空間大小為N*2/(6+2N) GB。530 =CPU設(shè)備調(diào)用GPU計(jì)算線程初始化GPU設(shè)備,向GPU設(shè)備傳遞計(jì)算空間數(shù)據(jù);GPU設(shè)備的初始化、IO傳輸以及GPU內(nèi)核的資源釋放等等,都由GPU計(jì)算線程通過(guò) 調(diào)用GPU計(jì)算核心來(lái)執(zhí)行,而不需調(diào)用CPU計(jì)算核心。531 =CPU設(shè)備調(diào)用CPU計(jì)算線程等待參與計(jì)算的數(shù)據(jù)到來(lái)后進(jìn)行相應(yīng)部分的計(jì) 算,直至所有數(shù)據(jù)計(jì)算結(jié)束;CPU線程調(diào)用CPU計(jì)算核心執(zhí)行該部分計(jì)算。540 =CPU設(shè)備通過(guò)接收線程接收到數(shù)據(jù)后,控制GPU設(shè)備進(jìn)行相應(yīng)部分的計(jì)算,直 至所有數(shù)據(jù)計(jì)算結(jié)束;GPU設(shè)備的IO數(shù)據(jù)傳輸和內(nèi)核調(diào)用均采用異步方式進(jìn)行,其中IO數(shù)據(jù)傳輸需要 在GPU設(shè)備上開(kāi)辟兩個(gè)緩沖區(qū),對(duì)應(yīng)于IO數(shù)據(jù)傳輸?shù)膬蓚€(gè)流分別進(jìn)行操作。這種IO流操 作與GPU內(nèi)核計(jì)算的時(shí)間可以相互覆蓋。550 :CPU設(shè)備將GPU設(shè)備計(jì)算的計(jì)算空間數(shù)據(jù)導(dǎo)出,并釋放GPU資源;560 =CPU設(shè)備將CPU計(jì)算線程與GPU計(jì)算線程的數(shù)據(jù)寫(xiě)回存儲(chǔ)設(shè)備,并結(jié)束計(jì)算 線程的操作。由上述步驟530、540 550構(gòu)成了本發(fā)明的CPU設(shè)備與GPU設(shè)備協(xié)同計(jì)算的流 程;該協(xié)同計(jì)算流程與步驟531 —起則形成了本發(fā)明的CPU設(shè)備與GPU設(shè)備共同計(jì)算的流 程。CPU計(jì)算線程與GPU計(jì)算線程在各自的計(jì)算核心的調(diào)用上形成并發(fā)處理,由CPU和GPU 共同承擔(dān)本節(jié)點(diǎn)上的總體成像空間數(shù)據(jù)的計(jì)算。上述方法實(shí)施例提出了 CPU設(shè)備與GPU設(shè)備協(xié)同計(jì)算并結(jié)合二者共同計(jì)算的新模 式。其中,協(xié)同計(jì)算是指,對(duì)于高并行度、計(jì)算密集型任務(wù)交給GPU設(shè)備進(jìn)行高速計(jì) 算,因此要求GPU設(shè)備支持通用計(jì)算或CUDA/OpenCL技術(shù);CPU設(shè)備在處理一些高復(fù)雜邏輯 任務(wù)的同時(shí),控制GPU進(jìn)行高速計(jì)算的工作。共同計(jì)算是指,CPU設(shè)備除了控制GPU設(shè)備和復(fù)雜邏輯任務(wù)之外,還參與與GPU設(shè) 備目的一致的密集型計(jì)算任務(wù)。本發(fā)明的上述系統(tǒng)、方法實(shí)施例所涉及的集群系統(tǒng)為CPU/GPU混合異構(gòu)架構(gòu)系 統(tǒng),其中每個(gè)計(jì)算節(jié)點(diǎn)都包含一或多個(gè)CPU設(shè)備或GPU設(shè)備。在上述系統(tǒng)、方法實(shí)施例中,計(jì)算空間的劃分方式可根據(jù)計(jì)算節(jié)點(diǎn)個(gè)數(shù)進(jìn)行自動(dòng) 調(diào)優(yōu),即當(dāng)計(jì)算節(jié)點(diǎn)個(gè)數(shù)發(fā)生變化時(shí),重新對(duì)計(jì)算空間進(jìn)行優(yōu)化劃分。每一計(jì)算節(jié)點(diǎn)內(nèi)的計(jì)算空間數(shù)據(jù)劃分方式可根據(jù)CPU核數(shù)與GPU設(shè)備個(gè)數(shù)進(jìn)行自動(dòng)調(diào)優(yōu),亦即當(dāng)計(jì)算節(jié)點(diǎn)的CPU 核數(shù)和/或GPU設(shè)備個(gè)數(shù)發(fā)生變化時(shí),重新對(duì)計(jì)算空間數(shù)據(jù)進(jìn)行優(yōu)化劃分。本發(fā)明通過(guò)構(gòu)建基于CPU/GPU混合架構(gòu)節(jié)點(diǎn)的集群系統(tǒng),通過(guò)采用CPU/GPU協(xié)同 計(jì)算以實(shí)現(xiàn)對(duì)GPU操作的加速,同時(shí)通過(guò)采用CPU/GPU共同計(jì)算以實(shí)現(xiàn)對(duì)于疊前時(shí)間偏移 這類大型計(jì)算的最優(yōu)化。此外,通過(guò)采用成像空間在CPU設(shè)備與GPU設(shè)備上的劃分來(lái)實(shí)現(xiàn) 這兩類計(jì)算設(shè)備間的負(fù)載均衡,并通過(guò)采用GPU設(shè)備的雙流雙緩沖策略以及GPU設(shè)備與IO 開(kāi)銷的異步調(diào)用來(lái)達(dá)到時(shí)間的相互覆蓋,從而給出一個(gè)高效的GPU集群計(jì)算方案。當(dāng)然,本發(fā)明例舉的上述系統(tǒng)、裝置及方法不僅適用于疊前時(shí)間偏移計(jì)算,而且還 適用于其它一些基于CPU/GPU混合架構(gòu)實(shí)現(xiàn)的細(xì)粒度、高密集度和高并發(fā)度的算法領(lǐng)域 中,譬如金融分析中的Black Scholes方法、MonteCarlo方法;生命科學(xué)中的三維電鏡重構(gòu) 方法;生物醫(yī)療中的CT設(shè)備內(nèi)的運(yùn)算方法等。以上說(shuō)明僅為本發(fā)明較佳的具體實(shí)施方式
      ,但本發(fā)明的保護(hù)范圍并不局限于此, 任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換, 都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求書(shū)的保護(hù)范 圍為準(zhǔn)。
      權(quán)利要求
      1.一種基于圖形處理器的計(jì)算網(wǎng)絡(luò)中的方法,涉及所述計(jì)算網(wǎng)絡(luò)中的管理節(jié)點(diǎn)和多個(gè) 計(jì)算節(jié)點(diǎn),該方法包括管理節(jié)點(diǎn)獲取計(jì)算網(wǎng)絡(luò)中計(jì)算節(jié)點(diǎn)的個(gè)數(shù),根據(jù)計(jì)算空間大小開(kāi)辟每一計(jì)算節(jié)點(diǎn)的內(nèi)存;計(jì)算節(jié)點(diǎn)根據(jù)本節(jié)點(diǎn)的圖形處理器GPU設(shè)備的個(gè)數(shù)和CPU核數(shù)開(kāi)辟CPU計(jì)算線程和 GPU計(jì)算線程,并劃分計(jì)算空間數(shù)據(jù);所述管理節(jié)點(diǎn)將參與計(jì)算的數(shù)據(jù)廣播到各個(gè)計(jì)算節(jié)點(diǎn);CPU設(shè)備調(diào)用GPU計(jì)算線程與 所述GPU設(shè)備協(xié)同完成一部分計(jì)算,同時(shí)并行調(diào)用CPU計(jì)算線程完成另一部分計(jì)算。
      2.按照權(quán)利要求1所述的方法,其特征在于,管理節(jié)點(diǎn)獲取計(jì)算網(wǎng)絡(luò)中計(jì)算節(jié)點(diǎn)的個(gè) 數(shù),根據(jù)計(jì)算空間大小開(kāi)辟每一計(jì)算節(jié)點(diǎn)的內(nèi)存,具體包括管理節(jié)點(diǎn)獲取計(jì)算網(wǎng)絡(luò)中計(jì)算節(jié)點(diǎn)的個(gè)數(shù)為M,根據(jù)計(jì)算空間大小為S為每個(gè)計(jì)算節(jié) 點(diǎn)各開(kāi)辟大小為S/M的內(nèi)存,用于各計(jì)算節(jié)點(diǎn)存儲(chǔ)本地的計(jì)算空間數(shù)據(jù)。
      3.按照權(quán)利要求1所述的方法,其特征在于,計(jì)算節(jié)點(diǎn)根據(jù)本節(jié)點(diǎn)的GPU設(shè)備的個(gè)數(shù)和 CPU核數(shù)開(kāi)辟CPU計(jì)算線程和GPU計(jì)算線程,并劃分計(jì)算空間數(shù)據(jù),具體包括所述計(jì)算節(jié)點(diǎn)獲取本節(jié)點(diǎn)所有CPU設(shè)備的核數(shù)共為N_CPU,GPU設(shè)備個(gè)數(shù)為N_GPU,則 開(kāi)辟(N_CPU-N_GPU)個(gè)CPU計(jì)算線程和N_GPU個(gè)GPU線程;根據(jù)所述N_CPU、所述N_GPU及 GPU設(shè)備與CPU設(shè)備計(jì)算能力的比值N將所述計(jì)算空間數(shù)據(jù)按照(N_CPU-N_GPU) N N 進(jìn)行劃分,其中,所述CPU設(shè)備的計(jì)算空間數(shù)據(jù)大小為(N_CPU-N_GPU)/[(N_CPU-N_GPU)+N_GPU*N];所述GPU設(shè)備的計(jì)算空間數(shù)據(jù)大小為N*N_GPU/[(N_CPU-N_GPU)+N_GPU*N]。
      4.按照權(quán)利要求1至3任一項(xiàng)所述的方法,其特征在于,所述管理節(jié)點(diǎn)將參與計(jì)算的數(shù) 據(jù)廣播到各個(gè)計(jì)算節(jié)點(diǎn),具體包括所述管理節(jié)點(diǎn)利用消息傳輸接口并行地將所述參與計(jì)算的數(shù)據(jù)廣播到所述計(jì)算節(jié)點(diǎn)。
      5.按照權(quán)利要求4所述的方法,其特征在于,所述CPU設(shè)備調(diào)用GPU計(jì)算線程與所述 GPU設(shè)備協(xié)同完成一部分計(jì)算,同時(shí)并行調(diào)用CPU計(jì)算線程完成另一部分計(jì)算,具體包括所述CPU設(shè)備調(diào)用GPU計(jì)算線程,初始化所述GPU設(shè)備,向所述GPU設(shè)備傳遞所述計(jì)算 空間數(shù)據(jù);在通過(guò)一個(gè)接收線程接收到數(shù)據(jù)后,控制所述GPU設(shè)備將所述數(shù)據(jù)對(duì)于劃分給 所述GPU設(shè)備的計(jì)算空間數(shù)據(jù)進(jìn)行相應(yīng)部分的計(jì)算,直至對(duì)所有接收的數(shù)據(jù)計(jì)算結(jié)束;同 時(shí)并行調(diào)用所述CPU計(jì)算線程用接收到的數(shù)據(jù)對(duì)于劃分給所述CPU設(shè)備的計(jì)算空間數(shù)據(jù)進(jìn) 行相應(yīng)部分的計(jì)算,直至所有接收的數(shù)據(jù)計(jì)算結(jié)束。
      6.按照權(quán)利要求5所述的方法,其特征在于,所述GPU計(jì)算線程在所述GPU設(shè)備中開(kāi)辟兩塊緩沖區(qū)用于緩存數(shù)據(jù),并創(chuàng)建兩個(gè)流標(biāo) 志;當(dāng)具有第一流標(biāo)志的數(shù)據(jù)到來(lái)后向第一緩存區(qū)傳輸,并調(diào)用GPU計(jì)算核心用該第一緩 存區(qū)的數(shù)據(jù)對(duì)于計(jì)算空間數(shù)據(jù)進(jìn)行計(jì)算;當(dāng)具有第二流標(biāo)志的數(shù)據(jù)到來(lái)后向第二緩存區(qū)傳 輸,并調(diào)用GPU計(jì)算核心用該第二緩存區(qū)的數(shù)據(jù)對(duì)計(jì)算空間數(shù)據(jù)進(jìn)行計(jì)算。
      7.按照權(quán)利要求1所述的方法,其特征在于,還涉及計(jì)算網(wǎng)絡(luò)的存儲(chǔ)設(shè)備;所述CPU設(shè)備調(diào)用所述GPU計(jì)算線程控制所述GPU設(shè)備完成相應(yīng)的計(jì)算后,還包括導(dǎo)出計(jì)算的計(jì)算空間數(shù)據(jù),以及釋放GPU資源;在并行調(diào)用所述CPU計(jì)算線程完成相應(yīng)的計(jì)算后,還包括將所述CPU計(jì)算線程與所述 GPU計(jì)算線程各自計(jì)算的計(jì)算空間數(shù)據(jù)寫(xiě)回該存儲(chǔ)設(shè)備。
      8.按照權(quán)利要求1至3、5、6、7任一項(xiàng)所述的方法,其特征在于,所述基于圖形處理器的 計(jì)算網(wǎng)絡(luò)為疊前時(shí)間偏移計(jì)算網(wǎng)絡(luò),所述計(jì)算空間數(shù)據(jù)為成像空間數(shù)據(jù),所述參與計(jì)算的 數(shù)據(jù)為參與計(jì)算的道數(shù)據(jù)。
      9.一種基于圖形處理器的計(jì)算網(wǎng)絡(luò)系統(tǒng),包括管理節(jié)點(diǎn)、多個(gè)計(jì)算節(jié)點(diǎn)以及存儲(chǔ)設(shè)備, 其中管理節(jié)點(diǎn),用于獲取計(jì)算網(wǎng)絡(luò)中計(jì)算節(jié)點(diǎn)的個(gè)數(shù),根據(jù)計(jì)算空間大小開(kāi)辟每一計(jì)算節(jié) 點(diǎn)的內(nèi)存;將從存數(shù)設(shè)備讀取的參與計(jì)算的數(shù)據(jù)廣播到各個(gè)計(jì)算節(jié)點(diǎn);計(jì)算節(jié)點(diǎn),用于根據(jù)本節(jié)點(diǎn)的圖形處理器GPU設(shè)備的個(gè)數(shù)和CPU核數(shù)開(kāi)辟CPU計(jì)算線 程和GPU計(jì)算線程,并劃分計(jì)算空間數(shù)據(jù);通過(guò)調(diào)用GPU計(jì)算線程與所述GPU設(shè)備協(xié)同完成 一部分計(jì)算,通過(guò)并行調(diào)用CPU計(jì)算線程完成另一部分計(jì)算; 存儲(chǔ)設(shè)備,至少用于存儲(chǔ)所述參與計(jì)算的數(shù)據(jù)。
      10.按照權(quán)利要求9所述的系統(tǒng),其特征在于,所述計(jì)算網(wǎng)絡(luò)系統(tǒng)為疊前時(shí)間偏移計(jì) 算網(wǎng)絡(luò)系統(tǒng),所述計(jì)算空間數(shù)據(jù)為成像空間數(shù)據(jù),所述參與計(jì)算的數(shù)據(jù)為參與計(jì)算的道數(shù) 據(jù);所述管理節(jié)點(diǎn)獲取所述計(jì)算節(jié)點(diǎn)的個(gè)數(shù)為M,根據(jù)成像空間大小為S為每個(gè)計(jì)算節(jié)點(diǎn) 各開(kāi)辟大小為S/M的內(nèi)存,用于各計(jì)算節(jié)點(diǎn)存儲(chǔ)本地的成像空間數(shù)據(jù);所述計(jì)算節(jié)點(diǎn)獲取本節(jié)點(diǎn)所有CPU設(shè)備的核數(shù)共為N_CPU,GPU設(shè)備個(gè)數(shù)為N_GPU,則 開(kāi)辟(N_CPU-N_GPU)個(gè)CPU計(jì)算線程和N_GPU個(gè)GPU線程;根據(jù)所述N_CPU、所述N_GPU及 GPU設(shè)備與CPU設(shè)備計(jì)算能力的比值N將所述成像空間數(shù)據(jù)按照(N_CPU-N_GPU) N N 進(jìn)行劃分,其中,所述CPU設(shè)備的成像空間數(shù)據(jù)大小為 (N_CPU-N_GPU)/[(N_CPU-N_GPU)+N_GPU*N]; 所述GPU設(shè)備成像空間數(shù)據(jù)大小為 N*N_GPU/[(N_CPU-N_GPU)+N_GPU*N]。
      11.按照權(quán)利要求10所述的系統(tǒng),其特征在于,所述管理節(jié)點(diǎn)利用消息傳輸接口(MPI)并行地將所述參與計(jì)算的道數(shù)據(jù)廣播到所述 計(jì)算節(jié)點(diǎn);所述CPU設(shè)備調(diào)用GPU計(jì)算線程初始化所述GPU設(shè)備,向所述GPU設(shè)備傳遞所述成像空 間數(shù)據(jù);在通過(guò)一個(gè)接收線程接收到道數(shù)據(jù)后,控制所述GPU設(shè)備用所述道數(shù)據(jù)對(duì)劃分給 所述GPU設(shè)備的成像空間數(shù)據(jù)進(jìn)行相應(yīng)部分的計(jì)算,直至對(duì)所有接收的道數(shù)據(jù)計(jì)算結(jié)束; 同時(shí)并行調(diào)用所述CPU計(jì)算線程用接收到的道數(shù)據(jù)對(duì)劃分給所述CPU設(shè)備的成像空間數(shù)據(jù) 進(jìn)行相應(yīng)部分的計(jì)算,直至所有接收的道數(shù)據(jù)計(jì)算結(jié)束。
      12.按照權(quán)利要求11所述的系統(tǒng),其特征在于,所述CPU設(shè)備調(diào)用的所述GPU計(jì)算線程在所述GPU設(shè)備中開(kāi)辟兩塊緩沖區(qū)用于緩存 道數(shù)據(jù),并創(chuàng)建兩個(gè)流標(biāo)志;當(dāng)具有第一流標(biāo)志的道數(shù)據(jù)到來(lái)后向第一緩存區(qū)傳輸,并調(diào)用 GPU計(jì)算核心用該第一緩存區(qū)的道數(shù)據(jù)對(duì)成像空間數(shù)據(jù)進(jìn)行計(jì)算;當(dāng)具有第二流標(biāo)志的道數(shù)據(jù)到來(lái)后向第二緩存區(qū)傳輸,并調(diào)用GPU計(jì)算核心用該第二緩存區(qū)的道數(shù)據(jù)對(duì)成像空間 數(shù)據(jù)進(jìn)行計(jì)算。
      13.按照權(quán)利要求10至12任一項(xiàng)所述的系統(tǒng),其特征在于,所述CPU設(shè)備調(diào)用所述GPU計(jì)算線程控制所述GPU設(shè)備完成相應(yīng)的計(jì)算后,還導(dǎo)出計(jì) 算的成像空間數(shù)據(jù),并釋放GPU資源;在并行調(diào)用所述CPU計(jì)算線程完成相應(yīng)的計(jì)算后,還 將所述CPU計(jì)算線程與所述GPU計(jì)算線程各自計(jì)算的成像空間數(shù)據(jù)寫(xiě)回所述存儲(chǔ)設(shè)備;所述存儲(chǔ)設(shè)備還存儲(chǔ)最終計(jì)算完成的成像空間數(shù)據(jù)。
      14.一種基于圖形處理器的計(jì)算網(wǎng)絡(luò)中的計(jì)算節(jié)點(diǎn)裝置,其特征在于,包括共同計(jì)算初 始模塊、CPU設(shè)備、圖形處理單元(GPU)設(shè)備以及存儲(chǔ)模塊,其中共同計(jì)算初始模塊,分別連接CPU設(shè)備和存儲(chǔ)模塊,用于根據(jù)獲取的本節(jié)點(diǎn)的CPU核數(shù) 和GPU設(shè)備數(shù)開(kāi)辟GPU計(jì)算線程和CPU計(jì)算線程,并在存儲(chǔ)模塊中劃分計(jì)算空間數(shù)據(jù);將所 述GPU計(jì)算線程、所述CPU計(jì)算線程和劃分的所述計(jì)算空間數(shù)據(jù)的地址輸出給CPU設(shè)備;CPU設(shè)備,分別連接GPU設(shè)備和存儲(chǔ)設(shè)備,用于根據(jù)所述GPU計(jì)算線程與GPU設(shè)備協(xié)同 完成一部分計(jì)算;根據(jù)所述CPU計(jì)算線程完成對(duì)收到的道數(shù)據(jù)和相應(yīng)地址的成像空間數(shù)據(jù) 的另一部分計(jì)算;GPU設(shè)備,用于在CPU設(shè)備的控制下完成對(duì)收到的數(shù)據(jù)和相應(yīng)的計(jì)算空間數(shù)據(jù)的所述 部分計(jì)算;存儲(chǔ)模塊,用于至少存儲(chǔ)初始的計(jì)算空間數(shù)據(jù)。
      15.按照權(quán)利要求14所述的裝置,其特征在于,該裝置為疊前時(shí)間偏移計(jì)算網(wǎng)絡(luò)中的 計(jì)算節(jié)點(diǎn)裝置,所述計(jì)算空間數(shù)據(jù)為成像空間數(shù)據(jù),所述參與計(jì)算的數(shù)據(jù)為參與計(jì)算的道 數(shù)據(jù);所述共同計(jì)算初始模塊獲取本節(jié)點(diǎn)所有CPU設(shè)備的核數(shù)共為N_CPU,GPU設(shè)備個(gè)數(shù)為 N_GPU,則開(kāi)辟(N_CPU-N_GPU)個(gè)CPU計(jì)算線程和N_GPU個(gè)GPU線程;根據(jù)所述N_CPU、所 述N_GPU及GPU設(shè)備與CPU設(shè)備計(jì)算能力的比值N將所述成像空間數(shù)據(jù)按照(N_CPU_N_ GPU) N N進(jìn)行劃分,其中,所述CPU設(shè)備的成像空間數(shù)據(jù)大小為(N_CPU-N_GPU)/[(N_CPU-N_GPU)+N_GPU*N];所述GPU設(shè)備成像空間數(shù)據(jù)大小為N*N_GPU/[(N_CPU-N_GPU)+N_GPU*N]。
      16.按照權(quán)利要求15所述的裝置,其特征在于,所述CPU設(shè)備調(diào)用GPU計(jì)算線程初始化所述GPU設(shè)備,向所述GPU設(shè)備傳遞所述成像空 間數(shù)據(jù);在通過(guò)一個(gè)接收線程接收到道數(shù)據(jù)后,控制所述GPU設(shè)備用所述道數(shù)據(jù)對(duì)劃分給 所述GPU設(shè)備的成像空間數(shù)據(jù)進(jìn)行相應(yīng)部分的計(jì)算,直至對(duì)所有接收的道數(shù)據(jù)計(jì)算結(jié)束; 同時(shí)并行調(diào)用所述CPU計(jì)算線程用接收到的道數(shù)據(jù)對(duì)劃分給所述CPU設(shè)備的成像空間數(shù)據(jù) 進(jìn)行相應(yīng)部分的計(jì)算,直至所有接收的道數(shù)據(jù)計(jì)算結(jié)束。
      17.按照權(quán)利要求15所述的裝置,其特征在于,所述CPU設(shè)備還在控制GPU設(shè)備完成相應(yīng)的計(jì)算后,將計(jì)算的成像空間數(shù)據(jù)導(dǎo)出到存 儲(chǔ)模塊中,并釋放GPU資源;在完成本CPU設(shè)備相應(yīng)的計(jì)算并保存到所述存儲(chǔ)模塊后,將從 所述存儲(chǔ)模塊中讀取的成像空間數(shù)據(jù)上傳給計(jì)算網(wǎng)絡(luò)中的存儲(chǔ)設(shè)備進(jìn)行存儲(chǔ)。
      18.按照權(quán)利要求15至17任一項(xiàng)所述的裝置,其特征在于,所述CPU設(shè)備調(diào)用的所述GPU計(jì)算線程在所述GPU設(shè)備中開(kāi)辟兩塊緩沖區(qū)用于緩存 道數(shù)據(jù),并創(chuàng)建兩個(gè)流標(biāo)志;當(dāng)具有第一流標(biāo)志的道數(shù)據(jù)到來(lái)后向第一緩存區(qū)傳輸,并調(diào)用 GPU計(jì)算核心用該第一緩存區(qū)的道數(shù)據(jù)對(duì)成像空間數(shù)據(jù)進(jìn)行計(jì)算;當(dāng)具有第二流標(biāo)志的道 數(shù)據(jù)到來(lái)后向第二緩存區(qū)傳輸,并調(diào)用GPU計(jì)算核心用該第二緩存區(qū)的道數(shù)據(jù)對(duì)成像空間 數(shù)據(jù)進(jìn)行計(jì)算。
      全文摘要
      本發(fā)明披露了基于圖形處理器的計(jì)算網(wǎng)絡(luò)系統(tǒng)、方法及裝置,涉及計(jì)算網(wǎng)絡(luò)中的管理節(jié)點(diǎn)和多個(gè)計(jì)算節(jié)點(diǎn),方法包括管理節(jié)點(diǎn)獲取計(jì)算網(wǎng)絡(luò)中計(jì)算節(jié)點(diǎn)的個(gè)數(shù),根據(jù)計(jì)算空間大小開(kāi)辟每一計(jì)算節(jié)點(diǎn)的內(nèi)存;計(jì)算節(jié)點(diǎn)根據(jù)本節(jié)點(diǎn)的GPU設(shè)備的個(gè)數(shù)和CPU核數(shù)開(kāi)辟CPU計(jì)算線程和GPU計(jì)算線程,并劃分計(jì)算空間數(shù)據(jù);管理節(jié)點(diǎn)將參與計(jì)算的數(shù)據(jù)廣播到各個(gè)計(jì)算節(jié)點(diǎn);CPU設(shè)備調(diào)用GPU計(jì)算線程與GPU設(shè)備協(xié)同完成一部分計(jì)算,同時(shí)并行調(diào)用CPU計(jì)算線程完成另一部分計(jì)算。本發(fā)明通過(guò)采用CPU/GPU協(xié)同計(jì)算、共同計(jì)算實(shí)現(xiàn)了大型計(jì)算應(yīng)用的高速化和最優(yōu)化。
      文檔編號(hào)G06F15/173GK102135949SQ20111004954
      公開(kāi)日2011年7月27日 申請(qǐng)日期2011年3月1日 優(yōu)先權(quán)日2011年3月1日
      發(fā)明者吳慶, 張清, 謝海波, 趙開(kāi)勇 申請(qǐng)人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1