




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
精品文檔-下載后可編輯眾核多計(jì)算模式系統(tǒng)的構(gòu)建-設(shè)計(jì)應(yīng)用摘要:復(fù)雜應(yīng)用領(lǐng)域中的一些具體計(jì)算任務(wù)不僅需要計(jì)算平臺(tái)具備高效的計(jì)算能力,而且也應(yīng)具有與計(jì)算任務(wù)特點(diǎn)相匹配的計(jì)算模式。依據(jù)NVIDIAKeplerGK110架構(gòu)中Hyper-Q特性與CUDA流的關(guān)系,提出單任務(wù)并行、多任務(wù)并行與多任務(wù)流式計(jì)算三種計(jì)算模式。采用空位標(biāo)記的方法對(duì)計(jì)算模式進(jìn)行構(gòu)建與切換,結(jié)合數(shù)據(jù)緩沖機(jī)制和計(jì)算任務(wù)加載方式,設(shè)計(jì)了眾核多計(jì)算模式處理系統(tǒng),實(shí)現(xiàn)了眾核處理機(jī)多模式計(jì)算的功能。
0引言
在航空航天、醫(yī)療服務(wù)、地質(zhì)勘探等復(fù)雜應(yīng)用領(lǐng)域,需要處理的數(shù)據(jù)量急劇增大,需要高性能的實(shí)時(shí)計(jì)算能力提供支撐。與多核處理器相比,眾核處理器計(jì)算資源密度更高、片上通信開(kāi)銷顯著降低、性能/功耗比明顯提高,可為實(shí)時(shí)系統(tǒng)提供強(qiáng)大的計(jì)算能力。
在復(fù)雜應(yīng)用領(lǐng)域當(dāng)中,不同應(yīng)用場(chǎng)景對(duì)計(jì)算的需求可能不同。例如,移動(dòng)機(jī)器人在作業(yè)時(shí),可能需要同時(shí)執(zhí)行路徑規(guī)劃、目標(biāo)識(shí)別等多個(gè)任務(wù),這些任務(wù)需要同時(shí)執(zhí)行;在對(duì)遙感圖像處理時(shí),需要對(duì)圖像數(shù)據(jù)進(jìn)行配準(zhǔn)、融合、重構(gòu)、特征提取等多個(gè)步驟,這些步驟間既需要同時(shí)執(zhí)行,又存在前驅(qū)后繼的關(guān)系。因此,基于眾核處理器進(jìn)行計(jì)算模式的動(dòng)態(tài)構(gòu)造,以適應(yīng)不同的應(yīng)用場(chǎng)景和應(yīng)用任務(wù)成為一種新的研究方向。文獻(xiàn)[1]研究了具有邏輯核構(gòu)造能力的眾核處理器體系結(jié)構(gòu),其基本思想是基于多個(gè)細(xì)粒度處理器核構(gòu)建成粗粒度邏輯核,將不斷增加的處理器核轉(zhuǎn)化為單線程串行應(yīng)用的性能提升。文獻(xiàn)提出并驗(yàn)證了一種基于類數(shù)據(jù)流驅(qū)動(dòng)模型的可重構(gòu)眾核處理器結(jié)構(gòu),實(shí)現(xiàn)了邏輯核處理器的運(yùn)行時(shí)可重構(gòu)機(jī)制。文獻(xiàn)提出了一種支持核資源動(dòng)態(tài)分組的自適應(yīng)調(diào)度算法,通過(guò)對(duì)任務(wù)簇的拆分與合并,動(dòng)態(tài)構(gòu)建可彈性分區(qū)的核邏輯組,實(shí)現(xiàn)核資源的隔離優(yōu)化訪問(wèn)。
GPGPU(General-PurposeComputingonGraphicsProcessingUnits)作為一種典型的眾核處理器,有關(guān)研究多面向單任務(wù)并發(fā)執(zhí)行方面的優(yōu)化以及應(yīng)用算法的加速。本文以GPGPU為平臺(tái),通過(guò)研究和設(shè)計(jì),構(gòu)建了單任務(wù)并行、多任務(wù)并行和多任務(wù)流式處理的多計(jì)算模式處理系統(tǒng)。
1眾核處理機(jī)
1.1眾核處理機(jī)結(jié)構(gòu)
眾核處理機(jī)是基于眾核控制單元(MPU)與眾核處理器(GPGPU)相結(jié)合的主、協(xié)處理方式構(gòu)建而成,其邏輯結(jié)構(gòu)如圖1所示。眾核處理機(jī)由眾核控制單元和眾核計(jì)算單元兩部分組成,其中眾核控制單元采用X86結(jié)構(gòu)的MPU,與眾核計(jì)算單元之間通過(guò)PCI-E總線進(jìn)行互連。
1.2CUDA流與Hyper-Q
在統(tǒng)一計(jì)算設(shè)備架構(gòu)(ComputeUnifiedDeviceAr-chitecture,CUDA)編程模型中,CUDA流(CUDAStream)表示GPU的一個(gè)操作隊(duì)列,通過(guò)CUDA流來(lái)管理任務(wù)和并行。CUDA流的使用分為兩種:一種是CUDA在創(chuàng)建上下文時(shí)會(huì)隱式地創(chuàng)建一個(gè)CUDA流,從而命令可以在設(shè)備中排隊(duì)等待執(zhí)行;另一種是在編程時(shí),在執(zhí)行配置中顯式地指定CUDA流。不管以何種方式使用CUDA流,所有的操作在CUDA流中都是按照先后順序排隊(duì)執(zhí)行,然后每個(gè)操作按其進(jìn)入隊(duì)列的順序離開(kāi)隊(duì)列。換言之,隊(duì)列充當(dāng)了一個(gè)FIFO(先入先出)緩沖區(qū),操作按照它們?cè)谠O(shè)備中的出現(xiàn)順序離開(kāi)隊(duì)列。
在GPU中,有一個(gè)CUDA工作調(diào)度器(CUDAWorkDistributor,CWD)的硬件單元,專門負(fù)責(zé)將計(jì)算工作分發(fā)到不同的流處理器中。在Fermi架構(gòu)中,雖然支持16個(gè)內(nèi)核的同時(shí)啟動(dòng),但由于只有一個(gè)硬件工作隊(duì)列用來(lái)連接主機(jī)端CPU和設(shè)備端GPU,造成并發(fā)的多個(gè)CUDA流中的任務(wù)在執(zhí)行時(shí)必須復(fù)用同一硬件工作隊(duì)列,產(chǎn)生了虛假的流內(nèi)依賴關(guān)系,必須等待同一CUDA流中相互依賴的kernel執(zhí)行結(jié)束,另一CUDA流中的ker-nel才能開(kāi)始執(zhí)行。而在KeplerGK110架構(gòu)中,新具有的Hyper-Q特性消除了只有單一硬件工作隊(duì)列的限制,增加了硬件工作隊(duì)列的數(shù)量,因此,在CUDA流的數(shù)目不超過(guò)硬件工作隊(duì)列數(shù)目的前提下,允許每個(gè)CUDA流獨(dú)占一個(gè)硬件工作隊(duì)列,CUDA流內(nèi)的操作不再阻塞其他CUDA流的操作,多個(gè)CUDA流能夠并行執(zhí)行。
如圖2所示,當(dāng)利用Hyper-Q和CUDA流一起工作時(shí),虛線上方顯示為Fermi模式,流1、流2、流3復(fù)用一個(gè)硬件工作隊(duì)列,而虛線下方為KeplerHyper-Q模式,允許每個(gè)流使用單獨(dú)的硬件工作隊(duì)列同時(shí)執(zhí)行。
2眾核多計(jì)算模式處理框架
為了充分發(fā)揮眾核處理器的計(jì)算能力,眾核處理系統(tǒng)面對(duì)不同的計(jì)算任務(wù)的特點(diǎn),可構(gòu)建三種計(jì)算模式,即單任務(wù)并行計(jì)算、多任務(wù)并行計(jì)算、多任務(wù)流式計(jì)算。
2.1眾核多計(jì)算模式處理系統(tǒng)結(jié)構(gòu)
眾核多計(jì)算模式處理系統(tǒng)結(jié)構(gòu)如圖3所示。眾核處理系統(tǒng)包括數(shù)據(jù)通信、任務(wù)管理、形態(tài)管理、資源管理和控制監(jiān)聽(tīng)模塊。
數(shù)據(jù)通信模塊:提供接口給主控機(jī),負(fù)責(zé)接收從主控機(jī)發(fā)送來(lái)的任務(wù)命令和任務(wù)計(jì)算所需的任務(wù)數(shù)據(jù),并且終將眾核處理機(jī)運(yùn)算完成的計(jì)算結(jié)果通過(guò)該模塊返回給主控機(jī)。
控制監(jiān)聽(tīng)模塊:在眾核處理系統(tǒng)運(yùn)行時(shí),實(shí)時(shí)獲取主控機(jī)發(fā)送給眾核處理機(jī)的任務(wù)命令,將其傳送給任務(wù)管理模塊,并接收任務(wù)管理模塊返回的任務(wù)命令執(zhí)行結(jié)果。
任務(wù)管理模塊:負(fù)責(zé)計(jì)算任務(wù)的加載過(guò)程,將控制監(jiān)聽(tīng)模塊發(fā)送來(lái)的任務(wù)命令存于任務(wù)隊(duì)列,當(dāng)眾核計(jì)算單元需要加載任務(wù)進(jìn)行計(jì)算時(shí),從任務(wù)隊(duì)列中獲取任務(wù)命令,根據(jù)任務(wù)命令從任務(wù)配置文件中獲取任務(wù)計(jì)算所需的任務(wù)信息,該任務(wù)信息包含了計(jì)算任務(wù)運(yùn)行時(shí)所需的存儲(chǔ)空間大小、適合于該任務(wù)的計(jì)算模式、執(zhí)行函數(shù)(即CUDA中的kernel函數(shù))等內(nèi)容,在計(jì)算任務(wù)在被加載前,需要通知形態(tài)管理模塊把眾核計(jì)算單元切換到指定的計(jì)算模式下,并通知資源管理模塊分配存儲(chǔ)空間,通過(guò)數(shù)據(jù)通信模塊獲取任務(wù)數(shù)據(jù),然后讀取任務(wù)計(jì)算庫(kù),加載執(zhí)行函數(shù)進(jìn)行計(jì)算。
形態(tài)管理模塊:接收任務(wù)管理模塊發(fā)送來(lái)的目標(biāo)計(jì)算模式,切換到該種計(jì)算模式。
資源管理模塊:根據(jù)任務(wù)管理模塊發(fā)送的參數(shù)分配存儲(chǔ)空間,包括眾核控制單元的存儲(chǔ)空間和眾核計(jì)算單元的存儲(chǔ)空間,眾核控制單元的存儲(chǔ)空間用于對(duì)任務(wù)數(shù)據(jù)進(jìn)行緩存,然后通過(guò)數(shù)據(jù)傳輸?shù)腁PI接口把緩存在眾核控制單元的數(shù)據(jù)傳送到眾核計(jì)算單元的存儲(chǔ)空間,在計(jì)算時(shí)由從眾核計(jì)算單元存儲(chǔ)空間加載數(shù)據(jù)進(jìn)行計(jì)算。
2.2計(jì)算模式構(gòu)建與切換
計(jì)算模式構(gòu)建是形態(tài)管理模塊根據(jù)接收到的命令動(dòng)態(tài)構(gòu)建出被指定的目的計(jì)算模式的過(guò)程。眾核處理系統(tǒng)在初始化時(shí),就已經(jīng)創(chuàng)建了指定數(shù)目的CUDA流(CUDA流的數(shù)目取決于GPU中硬件工作隊(duì)列的數(shù)目),并采用空位標(biāo)記法對(duì)創(chuàng)建的CUDA流進(jìn)行管理,通過(guò)標(biāo)記位的有效性描述CUDA流的可用性。當(dāng)目的計(jì)算模式為單任務(wù)計(jì)算時(shí),只需將首位的CUDA流標(biāo)記設(shè)置為有效,其他全部標(biāo)記為無(wú)效,在對(duì)計(jì)算任務(wù)加載時(shí),將計(jì)算任務(wù)放入該CUDA流中進(jìn)行計(jì)算;當(dāng)目的計(jì)算模式為多任務(wù)計(jì)算時(shí),需要將指定數(shù)目CUDA流的標(biāo)記位設(shè)置為有效,在對(duì)計(jì)算任務(wù)加載時(shí),通過(guò)輪詢的方式將計(jì)算任務(wù)放入到相應(yīng)的CUDA流中,利用CUDA流的Hyper-Q特性,同時(shí)加載多個(gè)計(jì)算任務(wù)到眾核計(jì)算單元;當(dāng)目的計(jì)算模式為多任務(wù)流式計(jì)算時(shí),需要將指定CUDA流的標(biāo)記設(shè)置為有效,從構(gòu)建個(gè)計(jì)算步開(kāi)始,將個(gè)計(jì)算步放入個(gè)CUDA流中進(jìn)行計(jì)算,當(dāng)個(gè)計(jì)算步首次完成計(jì)算后,利用二元信號(hào)量通知眾核控制單元中的任務(wù)管理模塊開(kāi)始構(gòu)建第二個(gè)計(jì)算步,并重新構(gòu)建個(gè)計(jì)算步,以此類推,完成對(duì)多任務(wù)流式計(jì)算中每個(gè)計(jì)算步的動(dòng)態(tài)構(gòu)建過(guò)程。
計(jì)算模式的切換是當(dāng)眾核計(jì)算單元的當(dāng)前計(jì)算模式與計(jì)算任務(wù)執(zhí)行需要的計(jì)算模式(即目的計(jì)算模式)不匹配時(shí),需要對(duì)眾核計(jì)算單元的計(jì)算模式進(jìn)行切換,以適應(yīng)計(jì)算模式變化的需求。
在從任務(wù)配置文件中獲取適應(yīng)于計(jì)算任務(wù)執(zhí)行的目的計(jì)算模式后,首先與當(dāng)前計(jì)算模式進(jìn)行比較,若匹配成功則不需要進(jìn)行計(jì)算模式的切換;若匹配失敗則進(jìn)一步判斷眾核在當(dāng)前計(jì)算模式下是否空閑,如處于忙碌狀態(tài)則需要等待,對(duì)于不同優(yōu)先級(jí)的任務(wù)設(shè)有不同的等待時(shí)限,以保證對(duì)計(jì)算任務(wù)的及時(shí)響應(yīng),當(dāng)大于這一時(shí)強(qiáng)制結(jié)束正在運(yùn)行的任務(wù)以釋放計(jì)算資源,從而構(gòu)建新的計(jì)算模式,完成計(jì)算模的切換過(guò)程,流程圖如圖4所示。
2.3共享內(nèi)存緩沖技術(shù)
眾核計(jì)算單元在對(duì)主控機(jī)請(qǐng)求的計(jì)算任務(wù)加載前,必須獲取來(lái)自主控機(jī)的任務(wù)數(shù)據(jù),為了實(shí)現(xiàn)對(duì)任務(wù)數(shù)據(jù)的接收和發(fā)送,需要建立相應(yīng)的數(shù)據(jù)緩沖區(qū)。傳統(tǒng)的方法是采用消息隊(duì)列和基于共享內(nèi)存信號(hào)燈的方式來(lái)建立和管理數(shù)據(jù)緩沖區(qū),但當(dāng)數(shù)據(jù)的寫入和讀取速度差別較大時(shí),容易造成數(shù)據(jù)緩沖區(qū)的阻塞。因此采用一種可滑動(dòng)動(dòng)態(tài)共享內(nèi)存緩沖技術(shù),如圖5所示。
在眾核控制單元的存儲(chǔ)空間中申請(qǐng)存儲(chǔ)空間作為存放數(shù)據(jù)的緩沖池,按需要建立指定數(shù)量的單向指針鏈表,每個(gè)指針鏈表代表一個(gè)數(shù)據(jù)緩沖區(qū),在眾核處理系統(tǒng)的計(jì)算模式切換時(shí),可根據(jù)并行任務(wù)數(shù)目的變化修改指針鏈表的節(jié)點(diǎn)數(shù),使每個(gè)數(shù)據(jù)緩沖區(qū)占用的存儲(chǔ)空間按需滑動(dòng),以提高整個(gè)數(shù)據(jù)緩池?cái)?shù)據(jù)的傳遞效率。
2.4計(jì)算庫(kù)動(dòng)態(tài)加載
在對(duì)計(jì)算任務(wù)的執(zhí)行函數(shù)進(jìn)行加載時(shí),采用動(dòng)態(tài)共享庫(kù)的方式,因?yàn)閯?dòng)態(tài)鏈接的共享庫(kù)具有動(dòng)態(tài)加載、封裝實(shí)現(xiàn)、節(jié)省內(nèi)存等優(yōu)點(diǎn),可以把眾核計(jì)算單元的執(zhí)行函數(shù)與邏輯控制程序相隔離,降低了眾核計(jì)算與邏輯控制的耦合度,增加了可擴(kuò)展性和靈活性。
在動(dòng)態(tài)加載計(jì)算庫(kù)前,需要將執(zhí)行函數(shù)編譯生成動(dòng)態(tài)共享庫(kù),進(jìn)而在程序中進(jìn)行顯示調(diào)用。當(dāng)調(diào)用時(shí)使用動(dòng)態(tài)加載API,該過(guò)程首先調(diào)用dlopen以打開(kāi)指定名字的動(dòng)態(tài)共享庫(kù),并獲得共享對(duì)象的句柄;而后通過(guò)調(diào)用dlsym,根據(jù)動(dòng)態(tài)共享庫(kù)操作句柄與符號(hào)獲取該符號(hào)對(duì)應(yīng)的函數(shù)的執(zhí)行代碼地址;在取得執(zhí)行代碼地址后,就可以根據(jù)共享庫(kù)提供的接口調(diào)用與計(jì)算任務(wù)對(duì)應(yīng)的執(zhí)行函數(shù),將執(zhí)行函數(shù)發(fā)射到眾核計(jì)算單元,由眾核計(jì)算單元根據(jù)執(zhí)行函數(shù)的配置參數(shù)組織計(jì)算資源進(jìn)行計(jì)算;當(dāng)不會(huì)再調(diào)用共享對(duì)象時(shí)調(diào)用dlclose關(guān)閉指定句柄的動(dòng)態(tài)共享庫(kù)。
3結(jié)語(yǔ)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 老年護(hù)理吸痰課件
- 地形地貌測(cè)繪項(xiàng)目聘用人員協(xié)議
- 快餐店員工勞動(dòng)合同范本(含加班費(fèi)條款)
- 臨時(shí)彩鋼活動(dòng)房搭建與拆除安全合同
- 主題餐廳合伙經(jīng)營(yíng)合同協(xié)議書
- 碑刻與考古學(xué)骨器考古合同
- 保險(xiǎn)理賠責(zé)任限制證明合同
- 民用住宅拆除重建項(xiàng)目管理合同模板
- 近期安全事故2025年
- 汛期安全工作應(yīng)急預(yù)案
- 常見(jiàn)警情處置課件
- 全國(guó)高校輔導(dǎo)員職業(yè)能力大賽基礎(chǔ)知識(shí)測(cè)試題題庫(kù)(60問(wèn))
- “世界濕地日”宣傳活動(dòng)方案范例(3篇)
- 事故隱患排查治理培訓(xùn)課件
- 醫(yī)務(wù)人員職業(yè)暴露預(yù)防及處理課件(完整版)
- 滲濾液處理應(yīng)急預(yù)案
- 肺部結(jié)節(jié)病例討論范文
- 整本書閱讀《平凡的世界》中職語(yǔ)文高教版(2023-2024)基礎(chǔ)模塊上冊(cè)
- 全冊(cè)背記資料-2024-2025學(xué)年七年級(jí)地理上學(xué)期湘教版
- 買賣合同法律知識(shí)及風(fēng)險(xiǎn)防范培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論