性勞動(dòng)前提下所獲得的所有其它 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0053]為使本發(fā)明技術(shù)方案的優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作詳細(xì)說(shuō) 明。
[0054] 實(shí)施例一
[0055] 本發(fā)明實(shí)施例提供一種化en化運(yùn)行時(shí)系統(tǒng)的設(shè)計(jì)方法,如圖1所示,所述方法包 括:
[0056] 101、化en化運(yùn)行時(shí)系統(tǒng)將化en化運(yùn)行時(shí)系統(tǒng)框架劃分為功能層、優(yōu)化層及平臺(tái) 層。
[0057] 其中,平臺(tái)層包括平臺(tái)層中間表示IR、平臺(tái)層實(shí)現(xiàn)框架及至少一個(gè)平臺(tái)實(shí)現(xiàn)。
[0058] 對(duì)于本發(fā)明實(shí)施例,如圖2所示,化en化運(yùn)行時(shí)系統(tǒng)框架分為功能層、優(yōu)化層及平 臺(tái)層3層。其中,功能層用于接收化en化運(yùn)行時(shí)代碼,并實(shí)現(xiàn)其基本功能;優(yōu)化層用于實(shí) 施全系統(tǒng)優(yōu)化。在本發(fā)明實(shí)施例,功能層及優(yōu)化層中均包括平臺(tái)無(wú)關(guān)部分及平臺(tái)相關(guān)部分。 其中,平臺(tái)無(wú)關(guān)部分為異構(gòu)系統(tǒng)中各個(gè)不同平臺(tái)的相同部分,用平臺(tái)無(wú)關(guān)IR進(jìn)行表示;平 臺(tái)相關(guān)部分為異構(gòu)系統(tǒng)中各個(gè)不同平臺(tái)的不同部分,用平臺(tái)相關(guān)IR進(jìn)行表示。
[0059] 102、化en化運(yùn)行時(shí)系統(tǒng)向功能層及優(yōu)化層提供平臺(tái)層IR,并向至少一個(gè)平臺(tái)實(shí) 現(xiàn)提供平臺(tái)層實(shí)現(xiàn)框架。
[0060] 其中,化en化運(yùn)行時(shí)系統(tǒng)向功能層及優(yōu)化層提供的平臺(tái)層IR包括架構(gòu)manager及 加速器manager,該架構(gòu)manager及加速器manager均包括對(duì)應(yīng)的方法及描述。在本發(fā)明實(shí) 施例中,平臺(tái)層實(shí)現(xiàn)框架可W用于為化en化運(yùn)行時(shí)系統(tǒng)的新平臺(tái)快速地提供對(duì)應(yīng)的平臺(tái) 層IR的具體實(shí)現(xiàn)。
[0061] 對(duì)于本發(fā)明實(shí)施例,通過(guò)將化en化運(yùn)行時(shí)系統(tǒng)劃分為功能層、優(yōu)化層及平臺(tái)層, 并在優(yōu)化層中使用平臺(tái)層IR接口,能夠使得優(yōu)化可W在優(yōu)化層統(tǒng)一進(jìn)行實(shí)施,在跨平臺(tái)移 植時(shí),通過(guò)優(yōu)化層可W直接進(jìn)行移植,從而可W實(shí)現(xiàn)一個(gè)優(yōu)化可W在各個(gè)不同平臺(tái)上進(jìn)行 實(shí)施,進(jìn)而可W降低異構(gòu)系統(tǒng)的平臺(tái)開(kāi)發(fā)復(fù)雜度;同時(shí),當(dāng)引入新平臺(tái)時(shí),僅需按照平臺(tái)層 實(shí)現(xiàn)框架配置該新平臺(tái)的平臺(tái)層IR,化en化運(yùn)行時(shí)系統(tǒng)中的功能層及優(yōu)化層均不需改變, 從而可W實(shí)現(xiàn)在跨平臺(tái)移植時(shí),最大限度地利用現(xiàn)有平臺(tái)的化enCL運(yùn)行時(shí)系統(tǒng)的相關(guān)技 術(shù),進(jìn)而可W進(jìn)步一步降低異構(gòu)系統(tǒng)的平臺(tái)開(kāi)發(fā)復(fù)雜度。
[0062] 對(duì)于本發(fā)明實(shí)施例,化en化運(yùn)行時(shí)系統(tǒng)框架可W適用于任意的異構(gòu)計(jì)算系統(tǒng)中。 其中,異構(gòu)計(jì)算系統(tǒng)可W為不同的指令集、不同的微結(jié)構(gòu)或者不同的計(jì)算能力設(shè)備相互連 接所構(gòu)成的系統(tǒng)。在本發(fā)明實(shí)施例,不同的平臺(tái)實(shí)現(xiàn)可W為T(mén)ilera眾核平臺(tái)或者ARM+X86 異構(gòu)平臺(tái)等。
[0063] 進(jìn)一步地,作為圖1所示方法的具體實(shí)現(xiàn),本發(fā)明實(shí)施例提供了一種化en化運(yùn)行 時(shí)系統(tǒng)的設(shè)計(jì)裝置,如圖3所示,所述裝置的實(shí)體可W為化en化運(yùn)行時(shí)系統(tǒng),所述裝置包 括:劃分單元31、提供單元32。
[0064] 劃分單元31,用于將化en化運(yùn)行時(shí)系統(tǒng)框架劃分為功能層、優(yōu)化層及平臺(tái)層。
[0065] 其中,平臺(tái)層包括平臺(tái)層中間表示IR、平臺(tái)層實(shí)現(xiàn)框架及至少一個(gè)平臺(tái)實(shí)現(xiàn)。
[0066] 提供單元32,用于向劃分單元?jiǎng)澐?1的功能層及優(yōu)化層提供所述平臺(tái)層IR,并向 至少一個(gè)平臺(tái)實(shí)現(xiàn)提供平臺(tái)層實(shí)現(xiàn)框架。
[0067] 需要說(shuō)明的是,本發(fā)明實(shí)施例中提供的化en化運(yùn)行時(shí)系統(tǒng)的設(shè)計(jì)裝置中各功能 單元所對(duì)應(yīng)的其他相應(yīng)描述,可W參考圖1中的對(duì)應(yīng)描述,在此不再費(fèi)述。
[006引再進(jìn)一步地,所述化en化運(yùn)行時(shí)系統(tǒng)的設(shè)計(jì)裝置的實(shí)體可W為化en化運(yùn)行時(shí)系 統(tǒng),如圖4所示,所述化en化運(yùn)行時(shí)系統(tǒng)可W包括;處理器41、輸入設(shè)備42、輸出設(shè)備43、 存儲(chǔ)器44,所述輸入單元42、輸出單元43及存儲(chǔ)器44分別與處理器41相連接。
[0069] 處理器41,用于將化en化運(yùn)行時(shí)系統(tǒng)框架劃分為功能層、優(yōu)化層及平臺(tái)層。
[0070] 其中,平臺(tái)層包括平臺(tái)層中間表示IR、平臺(tái)層實(shí)現(xiàn)框架及至少一個(gè)平臺(tái)實(shí)現(xiàn)。
[0071] 處理器41,還用于向功能層及優(yōu)化層提供所述平臺(tái)層IR,并向至少一個(gè)平臺(tái)實(shí)現(xiàn) 提供平臺(tái)層實(shí)現(xiàn)框架。
[0072] 需要說(shuō)明的是,本發(fā)明實(shí)施例中提供的化en化運(yùn)行時(shí)系統(tǒng)中各設(shè)備所對(duì)應(yīng)的其 他相應(yīng)描述,可W參考圖1中的對(duì)應(yīng)描述,在此不再費(fèi)述。
[0073] 本發(fā)明實(shí)施例提供的化en化運(yùn)行時(shí)系統(tǒng)框架的設(shè)計(jì)方法及裝置,首先將化en化 運(yùn)行時(shí)系統(tǒng)框架劃分為功能層、優(yōu)化層及平臺(tái)層,平臺(tái)層包括平臺(tái)層中間表示IR、平臺(tái)層實(shí) 現(xiàn)框架及至少一個(gè)平臺(tái)實(shí)現(xiàn),然后向功能層及優(yōu)化層提供平臺(tái)層IR,并向至少一個(gè)平臺(tái)實(shí) 現(xiàn)提供平臺(tái)層實(shí)現(xiàn)框架。與目前通過(guò)不同公司的IR產(chǎn)生該公司產(chǎn)品的可執(zhí)行代碼相比,本 發(fā)明實(shí)施例通過(guò)將化en化運(yùn)行時(shí)系統(tǒng)框架劃分為功能層、優(yōu)化層及平臺(tái)層,能夠?qū)崿F(xiàn)同一 優(yōu)化直接在不同平臺(tái)上實(shí)施,并且當(dāng)引入新平臺(tái)時(shí)僅需對(duì)平臺(tái)層進(jìn)行開(kāi)發(fā),從而可W降低 異構(gòu)系統(tǒng)的平臺(tái)開(kāi)發(fā)復(fù)雜度。
[0074] 實(shí)施例二
[0075] 本發(fā)明實(shí)施例提供一種化en化運(yùn)行時(shí)系統(tǒng)框架的設(shè)計(jì)方法,如圖5所示,所述方 法包括:
[0076] 501、化en化運(yùn)行時(shí)系統(tǒng)將化en化運(yùn)行時(shí)系統(tǒng)框架劃分為功能層、優(yōu)化層及平臺(tái) 層。
[0077] 其中,平臺(tái)層包括平臺(tái)層中間表示IR、平臺(tái)層實(shí)現(xiàn)框架及至少一個(gè)平臺(tái)實(shí)現(xiàn)。
[0078] 對(duì)于本發(fā)明實(shí)施例,如圖2所示,化en化運(yùn)行時(shí)系統(tǒng)框架分為功能層、優(yōu)化層及平 臺(tái)層3層。其中,功能層用于接收化en化運(yùn)行時(shí)代碼,并實(shí)現(xiàn)其基本功能;優(yōu)化層用于實(shí) 施全系統(tǒng)優(yōu)化。在本發(fā)明實(shí)施例,功能層及優(yōu)化層中均包括平臺(tái)無(wú)關(guān)部分及平臺(tái)相關(guān)部分。 其中,平臺(tái)無(wú)關(guān)部分為異構(gòu)系統(tǒng)中各個(gè)不同平臺(tái)的相同部分,用平臺(tái)無(wú)關(guān)IR進(jìn)行表示;平 臺(tái)相關(guān)部分為異構(gòu)系統(tǒng)中各個(gè)不同平臺(tái)的不同部分,用平臺(tái)相關(guān)IR進(jìn)行表示。
[0079] 其中,平臺(tái)層IR包括構(gòu)架管理器manager及加速器manager。
[0080] 對(duì)于本發(fā)明實(shí)施例,化en化運(yùn)行時(shí)的具體步驟包括;首先進(jìn)行跨設(shè)備數(shù)據(jù)傳輸, 然后啟動(dòng)kernel執(zhí)行,最后進(jìn)行kernel并行執(zhí)行。例如,在CPU+GPU的異構(gòu)系統(tǒng)中,化en化 運(yùn)行時(shí)的具體步驟包括:首先CPU將輸入數(shù)據(jù)傳輸至GPU,CPU將計(jì)算結(jié)構(gòu)回傳至CPU,然后 CPU將kernel發(fā)射到GPU上進(jìn)行執(zhí)行,最后GPU上眾多的并行計(jì)算單元執(zhí)行該kernel。其 中,跨設(shè)備數(shù)據(jù)傳輸與啟動(dòng)kernel執(zhí)行為與平臺(tái)上設(shè)備之間的組織相關(guān)的部分,該部分可 W抽象為管理器manager;kernel并行執(zhí)行為與平臺(tái)上加速設(shè)備的內(nèi)部結(jié)構(gòu)相關(guān)的部分, 該部分可W抽象為加速器manager。
[0081] 對(duì)于本發(fā)明實(shí)施例,架構(gòu)manager可W描述異構(gòu)平臺(tái)上設(shè)備之間的組織關(guān)系,包 括內(nèi)存組織及控制關(guān)系;加速器manager可W描述異構(gòu)平臺(tái)上每個(gè)加速設(shè)備的硬件特征, 包括加速器代碼生成、并行組織及存儲(chǔ)層次。其中,化en化運(yùn)行時(shí)系統(tǒng)框架中包括一個(gè)架構(gòu) manager及至少一個(gè)加速器manager。在本發(fā)明實(shí)施例中,通過(guò)將平臺(tái)抽象為架構(gòu)manager 及計(jì)算器manager,能夠?yàn)榛痚n化運(yùn)行時(shí)系統(tǒng)提供統(tǒng)一的平臺(tái)層IR,從而可W構(gòu)建一個(gè)統(tǒng) 一的化en化運(yùn)行時(shí)系統(tǒng)框架。
[0082] 其中,平臺(tái)層IR包括平臺(tái)層IR的方法及平臺(tái)層IR的描述,平臺(tái)層IR的方法包括 強(qiáng)制平臺(tái)層IR或者建議平臺(tái)層IR。
[0083]具體地,架構(gòu)manager對(duì)應(yīng)的方法可W包括;launch、malloc、men_read/mem_ write等;架構(gòu)manager對(duì)應(yīng)的描述可W包括;加速器數(shù)目、CPU與加速器的連接架構(gòu)、加速 器名稱(chēng)/類(lèi)型、加速器功能/特長(zhǎng)、加速器狀態(tài)等。在本發(fā)明實(shí)施例中,平臺(tái)層IR可W為功 能層提供強(qiáng)制平臺(tái)層IR,為優(yōu)化層提供建議平臺(tái)層IR。
[0084]具體地,加速器manager對(duì)應(yīng)的方法可W包括;code_gen、local_malloc、local_ rea(Vlocal_w;rite、barrier等;加速器manager對(duì)應(yīng)的描述可W包括;存儲(chǔ)層次、并行組 織、SIMD(SingleInstructionMultipleData,單指令多數(shù)據(jù)流)寬度等。
[0085] 502、化en化運(yùn)行時(shí)系統(tǒng)向功能層提供強(qiáng)制平臺(tái)層IR。
[0086] 對(duì)于本發(fā)明實(shí)施例,為功能層提供的平臺(tái)層IR對(duì)應(yīng)的方法屬性均為強(qiáng)制,W使得 功能層可W直接進(jìn)行平臺(tái)層IR到具體功能的實(shí)現(xiàn)。例如,向功能層提供的強(qiáng)制平臺(tái)層IR 為方法屬性為強(qiáng)制的加速設(shè)備gl油al/local上存儲(chǔ)的malloc/read/write時(shí),可W直接使 用加速器設(shè)備上的malloc/read/write,W實(shí)現(xiàn)對(duì)應(yīng)的功能。
[0087] 對(duì)于本發(fā)明實(shí)施例,通過(guò)向功能層提供強(qiáng)制平臺(tái)層IR,能夠強(qiáng)制實(shí)現(xiàn)功能層對(duì)應(yīng) 的各項(xiàng)功能,從而可W實(shí)現(xiàn)化en化運(yùn)行時(shí)系統(tǒng)完全按照用戶(hù)編寫(xiě)的程序進(jìn)行翻譯。
[008引 503、化en化運(yùn)行時(shí)系統(tǒng)向優(yōu)化層提供建議平臺(tái)層IR。
[0089] 對(duì)于本發(fā)明實(shí)施例,為優(yōu)化層提供的平臺(tái)層IR對(duì)應(yīng)的方法屬性均為建議,在實(shí)現(xiàn) 過(guò)程中需要進(jìn)行包裝整合,W使得優(yōu)化層可W根據(jù)實(shí)際硬件資源進(jìn)行實(shí)現(xiàn)。具體地,當(dāng)建 議平臺(tái)層IR占用的硬件資源足夠時(shí),直接實(shí)現(xiàn)該平臺(tái)層IR;當(dāng)建議平臺(tái)層IR占用的硬件 資源不足時(shí),按照其對(duì)應(yīng)