OpenCL運(yùn)行時(shí)系統(tǒng)框架的設(shè)計(jì)方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及信息技術(shù)領(lǐng)域,特別涉及一種化en化運(yùn)行時(shí)系統(tǒng)框架的設(shè)計(jì)方法及 裝置。
【背景技術(shù)】
[0002] 隨著異構(gòu)硬件系統(tǒng)逐漸成為主流,按照通用的編程方法在各個(gè)不同異構(gòu)平臺(tái)上進(jìn) 行編程逐漸變得越來(lái)越重要。其中,異構(gòu)硬件系統(tǒng)主要為CPlXcentralprocessingunit, 中央處理器)+GPU(GraphicProcessing化it,圖像處理器)的異構(gòu)硬件系統(tǒng)。具體地,在 異構(gòu)系統(tǒng)中,通過(guò)化en化(化enComputingLanguage,開(kāi)放運(yùn)算語(yǔ)言)并行編程框架,編寫(xiě) 可W在對(duì)應(yīng)的平臺(tái)上執(zhí)行的程序。
[0003] 目前,在化en化運(yùn)行時(shí)系統(tǒng)中,通過(guò)首先由化en化kernel(操作系統(tǒng)內(nèi)核)編譯 器產(chǎn)生IR (Intermediate Representation,中間表示),然后在運(yùn)行時(shí),IR產(chǎn)生不同產(chǎn)品上 的可執(zhí)行代碼,從而實(shí)現(xiàn)對(duì)跨平臺(tái)的支持。例如,AMD的化en化kernel編譯器產(chǎn)生的CAL (Compute Abstraction Layer,計(jì)算抽象層)IR可W產(chǎn)生AMD不同產(chǎn)品上的可執(zhí)行代碼; Intel的Open化kernel編譯器產(chǎn)生的LLVM化OWLevel Virtual Machine,低級(jí)別虛擬機(jī)) IR可W產(chǎn)生Intel不同產(chǎn)品上的可執(zhí)行代碼;NVIDIA的化en化kernel編譯器產(chǎn)生的PTX (Parallel T虹eadExe州tion,并行線程執(zhí)行)可W產(chǎn)生NVIDIA不同產(chǎn)品上的可執(zhí)行代碼。
[0004] 然而,目前通過(guò)IR產(chǎn)生不同產(chǎn)品上的可執(zhí)行代碼時(shí),由于不同公司的化en化系統(tǒng) 框架不同,因此按照某一公司的化en化kernel編譯器產(chǎn)生的IR,僅可W支持該公司的異 構(gòu)平臺(tái),從而導(dǎo)致同一優(yōu)化在不同平臺(tái)上的實(shí)施及新平臺(tái)的引入均需重新開(kāi)發(fā),進(jìn)而導(dǎo)致 異構(gòu)系統(tǒng)的平臺(tái)開(kāi)發(fā)復(fù)雜度較高。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明實(shí)施例提供一種化en化運(yùn)行時(shí)系統(tǒng)框架的設(shè)計(jì)方法及裝置,可W降低異 構(gòu)系統(tǒng)的平臺(tái)開(kāi)發(fā)復(fù)雜度。
[0006] 本發(fā)明實(shí)施例米用的技術(shù)方案為:
[0007] 第一方面,本發(fā)明實(shí)施例提供一種化en化運(yùn)行時(shí)系統(tǒng)框架的設(shè)計(jì)方法,包括:
[0008] 將化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);
[0009]向所述功能層及所述優(yōu)化層提供所述平臺(tái)層IR,并向所述至少一個(gè)平臺(tái)實(shí)現(xiàn)提供 所述平臺(tái)層實(shí)現(xiàn)框架。
[0010] 結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述平臺(tái)層IR包括構(gòu)架 管理器manager及加速器manager。
[0011] 結(jié)合第一方面或者第一方面的第一種可能的實(shí)現(xiàn)方式,在第一方面的第二種可能 的實(shí)現(xiàn)方式中,所述平臺(tái)層IR包括所述平臺(tái)層IR的方法及所述平臺(tái)層IR的描述,所述平 臺(tái)層IR的方法包括強(qiáng)制平臺(tái)層IR或者建議平臺(tái)層IR。
[0012] 結(jié)合第一方面或者第一方面的第一種可能的實(shí)現(xiàn)方式,或者第一方面的第二種可 能的實(shí)現(xiàn)方式,在第一方面的第H種可能的實(shí)現(xiàn)方式中,所述向所述功能層及所述優(yōu)化層 提供所述平臺(tái)層IR的步驟包括:
[0013] 向所述功能層提供強(qiáng)制平臺(tái)層IR;
[0014] 向所述優(yōu)化層提供建議平臺(tái)層IR;
[0015] 所述向所述優(yōu)化層提供建議平臺(tái)層IR的步驟之后,還包括:
[0016] 為所述建議平臺(tái)層IR配置對(duì)應(yīng)的優(yōu)先級(jí)。
[0017] 結(jié)合第一方面或者第一方面的第一種可能的實(shí)現(xiàn)方式,或者第一方面的第二種可 能的實(shí)現(xiàn)方式,或者第一方面的第H種可能的實(shí)現(xiàn)方式,在第一方面的第四種可能的實(shí)現(xiàn) 方式中,所述向所述至少一個(gè)平臺(tái)實(shí)現(xiàn)提供所述平臺(tái)層實(shí)現(xiàn)框架的步驟之后,還包括:
[0018] 生成所述平臺(tái)層IR。
[0019] 結(jié)合第一方面的第四種可能的實(shí)現(xiàn)方式,在第一方面的第五種可能的實(shí)現(xiàn)方式 中,所述生成所述平臺(tái)層IR的步驟包括:
[0020] 生成所述平臺(tái)層IR的描述;
[0021] 判斷所述平臺(tái)層IR的方法所占用的資源是否小于或者等于可用資源;
[0022] 若所述平臺(tái)層IR的方法所占用的資源小于或者等于可用資源,則生成所述平臺(tái) 層IR的方法;
[0023] 若所述平臺(tái)層IR的方法所占用的資源大于可用資源,則按照所述平臺(tái)層IR對(duì)應(yīng) 的優(yōu)先級(jí),釋放優(yōu)先級(jí)最低的平臺(tái)層IR所占用的資源。
[0024] 第二方面,本發(fā)明實(shí)施例提供一種化en化運(yùn)行時(shí)系統(tǒng)框架的設(shè)計(jì)裝置,包括:
[0025] 劃分單元,用于將化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);
[0026] 提供單元,用于向所述劃分單元?jiǎng)澐值乃龉δ軐蛹八鰞?yōu)化層提供所述平臺(tái)層 IR,并向所述至少一個(gè)平臺(tái)實(shí)現(xiàn)提供所述平臺(tái)層實(shí)現(xiàn)框架。
[0027] 結(jié)合第二方面,在第二方面的第一種可能的實(shí)現(xiàn)方式中,
[0028] 所述提供單元提供的所述平臺(tái)層IR包括構(gòu)架管理器manager及加速器manager。
[0029] 結(jié)合第二方面或者第二方面的第一種可能的實(shí)現(xiàn)方式,在第二方面的第二種可能 的實(shí)現(xiàn)方式中,
[0030] 所述提供單元提供的所述平臺(tái)層IR包括所述平臺(tái)層IR的方法及所述平臺(tái)層IR 的描述,所述平臺(tái)層IR的方法包括強(qiáng)制平臺(tái)層IR或者建議平臺(tái)層IR。
[0031] 結(jié)合第二方面或者第二方面的第一種可能的實(shí)現(xiàn)方式,或者第二方面的第二種可 能的實(shí)現(xiàn)方式,在第二方面的第H種可能的實(shí)現(xiàn)方式中,
[0032] 所述提供單元,具體用于向所述功能層提供強(qiáng)制平臺(tái)層IR;
[0033] 所述提供單元,具體還用于向所述優(yōu)化層提供建議平臺(tái)層IR;
[0034] 所述裝置還包括;配置單元;
[00巧]所述配置單元,用于為所述建議平臺(tái)層IR配置對(duì)應(yīng)的優(yōu)先級(jí)。
[0036] 結(jié)合第二方面或者第二方面的第一種可能的實(shí)現(xiàn)方式,或者第二方面的第二種可 能的實(shí)現(xiàn)方式,或者第二方面的第H種可能的實(shí)現(xiàn)方式,在第二方面的第四種可能的實(shí)現(xiàn) 方式中,所述裝置還包括;生成單元;
[0037] 所述生成單元,用于生成所述平臺(tái)層IR。
[0038] 結(jié)合第二方面的第四種可能的實(shí)現(xiàn)方式,在第二方面的第五種可能的實(shí)現(xiàn)方式 中,所述生成單元包括:生成模塊、判斷模塊、釋放模塊;
[0039] 所述生成模塊,用于生成所述平臺(tái)層IR的描述;
[0040] 所述判斷模塊,用于判斷所述平臺(tái)層IR的方法所占用的資源是否小于或者等于 可用資源;
[0041] 所述生成模塊,還用于當(dāng)所述判斷模塊判斷所述平臺(tái)層IR的方法所占用的資源 小于或者等于可用資源時(shí),生成所述平臺(tái)層IR的方法;
[0042] 所述釋放模塊,用于當(dāng)所述判斷模塊判斷所述平臺(tái)層IR的方法所占用的資源大 于可用資源時(shí),按照所述平臺(tái)層IR對(duì)應(yīng)的優(yōu)先級(jí),釋放優(yōu)先級(jí)最低的平臺(tái)層IR所占用的資 源。
[0043] 本發(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ù)雜度。
【附圖說(shuō)明】
[0044]為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述 中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些 實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可W根據(jù)該些附 圖獲得其它的附圖。
[0045] 圖1為本發(fā)明實(shí)施例一提供的一種化en化運(yùn)行時(shí)系統(tǒng)框架的設(shè)計(jì)方法流程圖;
[0046] 圖2為本發(fā)明實(shí)施例一提供的一種化en化運(yùn)行時(shí)系統(tǒng)框架;
[0047] 圖3為本發(fā)明實(shí)施例一提供的一種化en化運(yùn)行時(shí)系統(tǒng)框架的設(shè)計(jì)裝置的結(jié)構(gòu)示 意圖;
[0048] 圖4為本發(fā)明實(shí)施例一提供的一種化en化運(yùn)打時(shí)系統(tǒng)的結(jié)構(gòu)不意圖;
[0049] 圖5為本發(fā)明實(shí)施例二提供的一種化en化運(yùn)行時(shí)系統(tǒng)框架的設(shè)計(jì)方法流程圖;
[0050] 圖6為本發(fā)明實(shí)施例二提供的一種化en化運(yùn)行時(shí)系統(tǒng)框架的設(shè)計(jì)裝置的結(jié)構(gòu)示 意圖;
[0051] 圖7為本發(fā)明實(shí)施例二提供的一種化en化運(yùn)行時(shí)系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0052] 下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造