亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種任務(wù)調(diào)度處理方法及裝置與流程

文檔序號(hào):12887021閱讀:477來(lái)源:國(guó)知局
一種任務(wù)調(diào)度處理方法及裝置與流程

本發(fā)明屬于調(diào)度控制領(lǐng)域,尤其涉及一種任務(wù)調(diào)度處理方法及裝置。



背景技術(shù):

cuda是一種由nvidia推出的通用并行計(jì)算架構(gòu),該架構(gòu)使gpu能夠解決復(fù)雜的計(jì)算問(wèn)題,它包含了cuda指令集架構(gòu)(isa)以及gpu內(nèi)部的并行計(jì)算引擎;由于gpu具有遠(yuǎn)遠(yuǎn)高于cpu的浮點(diǎn)運(yùn)算能力和內(nèi)存帶寬,同時(shí)由于其高度的并行性,非常適合于大規(guī)模數(shù)據(jù)處理。

但是,目前在cpu上進(jìn)行任務(wù)處理,且寫(xiě)入到全局內(nèi)存globalmemory的數(shù)據(jù)數(shù)量很大(8192bit),大大影響了任務(wù)處理效率。

因此,迫切需要提供一種利用gpu性能,實(shí)現(xiàn)高效的任務(wù)調(diào)度處理方案來(lái)解決上述技術(shù)問(wèn)題。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明提供一種任務(wù)調(diào)度處理方法及裝置,以解決上述問(wèn)題。

本發(fā)明提供一種任務(wù)調(diào)度處理方法,包括以下步驟:在全局內(nèi)存中建立映射表;其中,所述映射表包括任務(wù)名稱、任務(wù)對(duì)應(yīng)的調(diào)度單元、任務(wù)對(duì)應(yīng)的執(zhí)行函數(shù);所述調(diào)度單元調(diào)用所述執(zhí)行函數(shù),對(duì)所述任務(wù)進(jìn)行處理。

本發(fā)明提供一種任務(wù)調(diào)度處理裝置,包括處理器,適于實(shí)現(xiàn)各指令;存儲(chǔ)設(shè)備,適于存儲(chǔ)多條指令,所述指令適于由所述處理器加載并執(zhí)行;

在全局內(nèi)存中建立映射表;其中,所述映射表包括任務(wù)名稱、任務(wù)對(duì)應(yīng)的調(diào)度單元、任務(wù)對(duì)應(yīng)的執(zhí)行函數(shù);

所述調(diào)度單元調(diào)用所述執(zhí)行函數(shù),對(duì)所述任務(wù)進(jìn)行處理。

本發(fā)明實(shí)施例提供的技術(shù)方案:在全局內(nèi)存中建立映射表;其中,所述映射表包括任務(wù)名稱、任務(wù)對(duì)應(yīng)的調(diào)度單元、任務(wù)對(duì)應(yīng)的執(zhí)行函數(shù);所述調(diào)度單元調(diào)用所述執(zhí)行函數(shù),對(duì)所述任務(wù)進(jìn)行處理。通過(guò)在gpu上對(duì)多個(gè)任務(wù)進(jìn)行科學(xué)管理調(diào)度,大大提高了任務(wù)執(zhí)行效率。

本發(fā)明實(shí)施例提供的技術(shù)方案:將任務(wù)處理結(jié)果存儲(chǔ)至共享內(nèi)存;其中,所述全局內(nèi)存、所述共享內(nèi)存均位于圖形處理器gpu。通過(guò)使用在gpu上的共享內(nèi)存進(jìn)行數(shù)據(jù)的操作,大大提高的處理速度,提高了任務(wù)執(zhí)行效率。

附圖說(shuō)明

此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:

圖1所示為本發(fā)明實(shí)施例1的任務(wù)調(diào)度處理方法流程圖;

圖2所示為本發(fā)明實(shí)施例2的任務(wù)調(diào)度處理裝置結(jié)構(gòu)圖。

具體實(shí)施方式

下文中將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。

圖1所示為本發(fā)明實(shí)施例1的任務(wù)調(diào)度處理方法流程圖,包括以下步驟:

步驟101:在全局內(nèi)存中建立映射表;其中,所述映射表包括任務(wù)名稱、任務(wù)對(duì)應(yīng)的調(diào)度單元、任務(wù)對(duì)應(yīng)的執(zhí)行函數(shù);

步驟102:所述調(diào)度單元調(diào)用所述執(zhí)行函數(shù),對(duì)所述任務(wù)進(jìn)行處理。

進(jìn)一步地,將任務(wù)處理結(jié)果存儲(chǔ)至共享內(nèi)存;其中,所述全局內(nèi)存、所述共享內(nèi)存均位于圖形處理器gpu。

進(jìn)一步地,若所述任務(wù)被劃分為多個(gè)子任務(wù),則所述映射表還包括:子任務(wù)名稱、子任務(wù)對(duì)應(yīng)的調(diào)度子單元、子任務(wù)對(duì)應(yīng)的執(zhí)行函數(shù);

所述調(diào)度子單元調(diào)用所述子任務(wù)對(duì)應(yīng)的執(zhí)行函數(shù),對(duì)所述子任務(wù)進(jìn)行處理。

其中,建立共享內(nèi)存數(shù)組并將共享內(nèi)存數(shù)組地址傳給所述執(zhí)行函數(shù);

所述調(diào)度子單元調(diào)用所述子任務(wù)對(duì)應(yīng)的執(zhí)行函數(shù),并將子任務(wù)處理結(jié)果傳輸至所述共享內(nèi)存數(shù)組中選擇的同一地址的共享內(nèi)存。

進(jìn)一步地,所述調(diào)度子單元調(diào)用所述子任務(wù)對(duì)應(yīng)的執(zhí)行函數(shù),通過(guò)運(yùn)行多個(gè)線程,對(duì)所述子任務(wù)進(jìn)行處理。

其中,所述多個(gè)線程對(duì)應(yīng)同一地址的共享內(nèi)存。

下面進(jìn)行詳細(xì)說(shuō)明:

本發(fā)明實(shí)施例充分利用眾核并行計(jì)算形式對(duì)矩陣向量乘法進(jìn)行加速,在全局內(nèi)存globalmemory中建立映射表,并確定執(zhí)行函數(shù)即kernel函數(shù),對(duì)于共享內(nèi)存sharedmemory,采用靜態(tài)分配的方式對(duì)多任務(wù)進(jìn)行分配。

進(jìn)一步地,在全局內(nèi)存中建立映射表;其中,所述映射表包括任務(wù)名稱、任務(wù)對(duì)應(yīng)的調(diào)度單元、任務(wù)對(duì)應(yīng)的執(zhí)行函數(shù)。

若所述任務(wù)被劃分為多個(gè)子任務(wù),則所述映射表還包括:子任務(wù)名稱、子任務(wù)對(duì)應(yīng)的調(diào)度子單元、子任務(wù)對(duì)應(yīng)的執(zhí)行函數(shù)。

本發(fā)明實(shí)施例的實(shí)施,關(guān)鍵環(huán)節(jié)之一為:a)確定某個(gè)調(diào)度子單元block執(zhí)行哪個(gè)任務(wù)的哪個(gè)分塊;b)任務(wù)在映射表中的排布要求滿足約束條件的拓?fù)漤樞?,c)對(duì)于block的維數(shù)不一致情況,按照較大維度選取,讓其他較小的block添加空線程補(bǔ)足,保證block維數(shù)和維度的合理性。

另外,預(yù)先在kernel開(kāi)始的時(shí)候,申請(qǐng)一個(gè)足夠大的sharedmemory數(shù)組,其大小至少應(yīng)該等于每個(gè)任務(wù)所需要的sharedmemory用量的最大值;每個(gè)任務(wù)單獨(dú)寫(xiě)成一個(gè)函數(shù),將sharedmemory數(shù)組地址傳給這個(gè)函數(shù),函數(shù)中需要使用sharedmemory的時(shí)候,直接在這個(gè)數(shù)組中靜態(tài)分配使用。

在cuda架構(gòu)下,顯示芯片執(zhí)行時(shí)的最小單位是線程thread;數(shù)個(gè)thread可以組成一個(gè)調(diào)度子單元block。一個(gè)block中的thread能存取同一塊共享內(nèi)存sharedmemory,而且可以快速進(jìn)行同步的動(dòng)作。

每一個(gè)block所能包含的thread數(shù)目是有限的。執(zhí)行相同程序的block,可以組成grid。不同block中的thread無(wú)法存取同一個(gè)共享內(nèi)存,因此無(wú)法直接互通或進(jìn)行同步。因此,不同block中的thread能合作的程度是比較低的。不過(guò),利用這個(gè)模式,可以讓程序不用擔(dān)心顯示芯片實(shí)際上能同時(shí)執(zhí)行的thread數(shù)目限制。

每個(gè)thread都有自己的一份register和localmemory的空間。同一個(gè)block中的每個(gè)thread則有共享的一份sharememory。此外,所有的thread(包括不同block的thread)都共享一份全局內(nèi)存globalmemory、常量?jī)?nèi)存constantmemory、和紋理內(nèi)存texturememory。不同的grid則有各自的globalmemory、constantmemory和texturememory。

最適合利用cuda處理的問(wèn)題,是可以大量并行化的問(wèn)題,才能有效隱藏內(nèi)存的延遲latency,并有效利用顯示芯片上的大量執(zhí)行單元。使用cuda時(shí),同時(shí)有數(shù)千個(gè)thread在執(zhí)行是很正常的。因此,解決cuda大量并行化的問(wèn)題,可以使cuda達(dá)到最好的效率。

利用_shared_聲明的變量表示這是sharedmemory,是一個(gè)block中每個(gè)thread都共享的內(nèi)存。它會(huì)使用在gpu上的內(nèi)存,所以存取的速度相當(dāng)快,不需要擔(dān)心latency的問(wèn)題。_syncthreads()是一個(gè)cuda的內(nèi)部函數(shù),表示block中所有的thread都要同步到這個(gè)點(diǎn),才能繼續(xù)執(zhí)行。在本發(fā)明實(shí)施例中,由于之后要把所有thread計(jì)算的結(jié)果進(jìn)行加總,所以需要確定每個(gè)thread都已經(jīng)把結(jié)果寫(xiě)到shared[]里面。

對(duì)于矩陣規(guī)模為10000的運(yùn)算,修改后的cuda程序在teslam40上執(zhí)行需要的時(shí)間為0.316032ms,速度大于完全不在gpu上進(jìn)行加總的版本,由于在cpu上進(jìn)行加總的版本,寫(xiě)入到globalmemory的數(shù)據(jù)數(shù)量很大(8192bit),也對(duì)效率會(huì)有影響,因此,速度上明顯優(yōu)于cpu上的計(jì)算。

同時(shí),對(duì)于采用cublas庫(kù)加速的矩陣向量乘運(yùn)算結(jié)果,當(dāng)矩陣規(guī)模為10000時(shí),cuda+cublsa(cublassgemv)所需時(shí)間為1.651712ms,運(yùn)行時(shí)間小于常規(guī)sharedmemory模式,大于改進(jìn)后的cudasharedmemory,顯示出了這個(gè)加速方法在計(jì)算速度上的優(yōu)越性。

圖2所示為本發(fā)明實(shí)施例2的任務(wù)調(diào)度處理裝置結(jié)構(gòu)圖,包括處理器,適于實(shí)現(xiàn)各指令;存儲(chǔ)設(shè)備,適于存儲(chǔ)多條指令,所述指令適于由所述處理器加載并執(zhí)行;

在全局內(nèi)存中建立映射表;其中,所述映射表包括任務(wù)名稱、任務(wù)對(duì)應(yīng)的調(diào)度單元、任務(wù)對(duì)應(yīng)的執(zhí)行函數(shù);

所述調(diào)度單元調(diào)用所述執(zhí)行函數(shù),對(duì)所述任務(wù)進(jìn)行處理。

進(jìn)一步地,將任務(wù)處理結(jié)果存儲(chǔ)至共享內(nèi)存。

進(jìn)一步地,若所述任務(wù)被劃分為多個(gè)子任務(wù),則所述映射表還包括:子任務(wù)名稱、子任務(wù)對(duì)應(yīng)的調(diào)度子單元、子任務(wù)對(duì)應(yīng)的執(zhí)行函數(shù);

所述調(diào)度子單元調(diào)用所述子任務(wù)對(duì)應(yīng)的執(zhí)行函數(shù),對(duì)所述子任務(wù)進(jìn)行處理。

進(jìn)一步地,建立共享內(nèi)存數(shù)組并將共享內(nèi)存數(shù)組地址傳給所述執(zhí)行函數(shù);

所述調(diào)度子單元調(diào)用所述子任務(wù)對(duì)應(yīng)的執(zhí)行函數(shù),并將子任務(wù)處理結(jié)果傳輸至所述共享內(nèi)存數(shù)組中選擇的同一地址的共享內(nèi)存。

本發(fā)明實(shí)施例提供的技術(shù)方案:在全局內(nèi)存中建立映射表;其中,所述映射表包括任務(wù)名稱、任務(wù)對(duì)應(yīng)的調(diào)度單元、任務(wù)對(duì)應(yīng)的執(zhí)行函數(shù);所述調(diào)度單元調(diào)用所述執(zhí)行函數(shù),對(duì)所述任務(wù)進(jìn)行處理。通過(guò)在gpu上對(duì)多個(gè)任務(wù)進(jìn)行科學(xué)管理調(diào)度,大大提高了任務(wù)執(zhí)行效率。

本發(fā)明實(shí)施例提供的技術(shù)方案:將任務(wù)處理結(jié)果存儲(chǔ)至共享內(nèi)存;其中,所述全局內(nèi)存、所述共享內(nèi)存均位于圖形處理器gpu。通過(guò)使用在gpu上的共享內(nèi)存進(jìn)行數(shù)據(jù)的操作,大大提高的處理速度,提高了任務(wù)執(zhí)行效率。

以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1