[發(fā)明專利]基于異構(gòu)平臺(tái)的自適應(yīng)節(jié)點(diǎn)融合編譯優(yōu)化方法有效
| 申請(qǐng)?zhí)枺?/td> | 201910885756.1 | 申請(qǐng)日: | 2019-09-19 |
| 公開(公告)號(hào): | CN112527304B | 公開(公告)日: | 2022-10-04 |
| 發(fā)明(設(shè)計(jì))人: | 王飛;沈莉;吳偉;胡浩;錢宏 | 申請(qǐng)(專利權(quán))人: | 無錫江南計(jì)算技術(shù)研究所 |
| 主分類號(hào): | G06F8/41 | 分類號(hào): | G06F8/41;G06F16/901;G06K9/62 |
| 代理公司: | 蘇州創(chuàng)元專利商標(biāo)事務(wù)所有限公司 32103 | 代理人: | 王健 |
| 地址: | 214083 江蘇*** | 國省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 平臺(tái) 自適應(yīng) 節(jié)點(diǎn) 融合 編譯 優(yōu)化 方法 | ||
本發(fā)明公開一種基于異構(gòu)平臺(tái)的自適應(yīng)節(jié)點(diǎn)融合編譯優(yōu)化方法,包括以下步驟:S1、生成中間表示;S2、DAG融合子圖識(shí)別;S3、節(jié)點(diǎn)融合策略;S4、代價(jià)評(píng)估;S5、自適應(yīng)選擇節(jié)點(diǎn)融合策略,即根據(jù)S4計(jì)算得到的第k個(gè)融合策略代價(jià),結(jié)合目標(biāo)后端的寄存器、cache、內(nèi)存使用情況,自適應(yīng)地選擇最優(yōu)的節(jié)點(diǎn)融合策略;S6、目標(biāo)相關(guān)節(jié)點(diǎn)融合,根據(jù)節(jié)點(diǎn)融合策略,將S23中匹配得到的DAG子圖的控制流和數(shù)據(jù)流關(guān)系,轉(zhuǎn)移到S5選擇出的節(jié)點(diǎn)融合策略所生成的融合后的DAG子圖上,使用融合后的DAG子圖替換融合前的DAG子圖,轉(zhuǎn)到S22;S7、生成目標(biāo)代碼,即編譯器對(duì)降級(jí)完成后的DAG進(jìn)行編譯處理,生成異構(gòu)平臺(tái)代碼。本發(fā)明為異構(gòu)平臺(tái)的節(jié)點(diǎn)融合優(yōu)化提供精確指導(dǎo),能夠進(jìn)一步挖掘異構(gòu)平臺(tái)復(fù)合指令的潛力,提升異構(gòu)平臺(tái)的性能。
技術(shù)領(lǐng)域
本發(fā)明涉及一種基于異構(gòu)平臺(tái)的自適應(yīng)節(jié)點(diǎn)融合編譯優(yōu)化方法,屬于編譯器優(yōu)化技術(shù)領(lǐng)域。
背景技術(shù)
精簡指令集計(jì)算機(jī)和復(fù)雜指令集計(jì)算機(jī)是當(dāng)前CPU的兩種架構(gòu),它們的區(qū)別在于不同的CPU設(shè)計(jì)理念和方法。早期的CPU全部是復(fù)雜指令集架構(gòu),它的設(shè)計(jì)目的是要用最少的機(jī)器語言指令來完成所需的計(jì)算任務(wù)。長期以來,計(jì)算機(jī)的性能的提高往往是通過增加硬件的復(fù)雜性來獲得,一般的復(fù)雜指令計(jì)算機(jī)所含的指令數(shù)目至少300條,有的甚至超過了500條。復(fù)雜指令集計(jì)算機(jī)雖然能帶來較大的性能提升,但是對(duì)于一個(gè)典型的程序而言,其運(yùn)算過程所使用的80%指令只占一個(gè)處理器指令系統(tǒng)的20%,由此可見指令和成本之間存在巨大的不平衡。此外,盡管超大規(guī)模集成電路技術(shù)現(xiàn)在已經(jīng)達(dá)到很高的水平,但也很難把復(fù)雜指令集計(jì)算機(jī)的全部硬件做在一個(gè)芯片上,這也妨礙單片計(jì)算機(jī)的發(fā)展。精簡指令集系統(tǒng)只包含那些使用頻繁的指令,并提供一些必要的指令以支持操作系統(tǒng)和高級(jí)語言。使用精簡指令集的計(jì)算機(jī)不僅制造工藝簡單而且成本低廉。
復(fù)合指令是在基礎(chǔ)的精簡指令集的基礎(chǔ)之上,增加的一些用于提升程序性能、增加指令并行度的特殊指令。可以說復(fù)合指令的出現(xiàn)標(biāo)志著精簡指令集計(jì)算機(jī)和復(fù)雜指令計(jì)算機(jī)正在逐漸走向融合,比如常見的復(fù)合指令——乘加指令就是由專門的乘加器來完成乘加運(yùn)算,對(duì)于一些機(jī)器學(xué)習(xí)、科學(xué)計(jì)算的課題而言,乘加指令使用得相當(dāng)頻繁。如神經(jīng)網(wǎng)絡(luò)中最常見的表達(dá)式y(tǒng) = x × w + b可以通過乘加指令來完成,表達(dá)式中x為[x1,x2,…,xn],w為[w1,w2,…,wn]T, b為一個(gè)常量。當(dāng)然還有其他的一些復(fù)合指令來針對(duì)某些課題進(jìn)行加速,所以通過使用復(fù)合指令可以進(jìn)一步釋放CPU的潛力,提升CPU的性能。復(fù)合指令是通過專用的硬件邏輯來完成復(fù)雜的功能,相比于軟件實(shí)現(xiàn),硬件實(shí)現(xiàn)效率更高。該類指令被廣泛用于提升課題執(zhí)行效率上,且達(dá)到很好的加速效果。
傳統(tǒng)的編譯器所采用的節(jié)點(diǎn)融合優(yōu)化技術(shù)主要都是通過在源代碼中調(diào)用內(nèi)建函數(shù)接口或用中間表示進(jìn)行模板匹配等方式來生成復(fù)合指令。內(nèi)建函數(shù)調(diào)用方式與后端指令信息是強(qiáng)相關(guān)的,這在一定程度上限制了目標(biāo)無關(guān)的節(jié)點(diǎn)優(yōu)化,不利于編譯器優(yōu)化技術(shù)的發(fā)展,而且增加了程序員開發(fā)程序的復(fù)雜度。模板匹配方式生成復(fù)合指令是通過匹配一個(gè)子圖然后替換為相應(yīng)的復(fù)合指令,這種方式?jīng)]有充分考慮指令集、數(shù)據(jù)流和控制流信息對(duì)復(fù)合指令的影響,導(dǎo)致生成的可執(zhí)行文件的無法充分發(fā)揮復(fù)合指令的性能,不利于處理器復(fù)合指令性能的充分提升。該類方式的優(yōu)點(diǎn)是簡單且易于實(shí)現(xiàn),但是沒有充分考慮后端特征和當(dāng)前數(shù)據(jù)流等信息,導(dǎo)致生成的指令序列不能達(dá)到所期待的加速效果,甚至還可能導(dǎo)致倒加速,極大地限制了復(fù)合指令的性能。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種基于異構(gòu)平臺(tái)的自適應(yīng)節(jié)點(diǎn)融合編譯優(yōu)化方法,該基于異構(gòu)平臺(tái)的自適應(yīng)節(jié)點(diǎn)融合編譯優(yōu)化方法為異構(gòu)平臺(tái)的節(jié)點(diǎn)融合優(yōu)化提供精確指導(dǎo),能夠進(jìn)一步挖掘異構(gòu)平臺(tái)復(fù)合指令的潛力,提升異構(gòu)平臺(tái)的性能。
為達(dá)到上述目的,本發(fā)明采用的技術(shù)方案是:一種基于異構(gòu)平臺(tái)的自適應(yīng)節(jié)點(diǎn)融合編譯優(yōu)化方法,包括以下步驟:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于無錫江南計(jì)算技術(shù)研究所,未經(jīng)無錫江南計(jì)算技術(shù)研究所許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910885756.1/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 上一篇:在線視頻的播放方法、裝置及存儲(chǔ)介質(zhì)
- 下一篇:沉箱模板
- 使用后向自適應(yīng)規(guī)則進(jìn)行整數(shù)數(shù)據(jù)的無損自適應(yīng)Golomb/Rice編碼和解碼
- 一種自適應(yīng)軟件UML建模及其形式化驗(yàn)證方法
- 媒體自適應(yīng)參數(shù)的調(diào)整方法、系統(tǒng)及相關(guān)設(shè)備
- 五自由度自適應(yīng)位姿調(diào)整平臺(tái)
- 采用自適應(yīng)機(jī)匣和自適應(yīng)風(fēng)扇的智能發(fā)動(dòng)機(jī)
- 一種自適應(yīng)樹木自動(dòng)涂白裝置
- 一種基于微服務(wù)的多層次自適應(yīng)方法
- 一種天然氣發(fā)動(dòng)機(jī)燃?xì)庾赃m應(yīng)控制方法及系統(tǒng)
- 一種中心自適應(yīng)的焊接跟蹤機(jī)頭
- 一種有砟軌道沉降自適應(yīng)式軌道系統(tǒng)
- 節(jié)點(diǎn)查詢方法、節(jié)點(diǎn)、移動(dòng)通訊系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品
- 一種根據(jù)節(jié)點(diǎn)集合構(gòu)造節(jié)點(diǎn)關(guān)系樹的方法、裝置及系統(tǒng)
- 一種DHT網(wǎng)絡(luò)負(fù)載均衡裝置及虛節(jié)點(diǎn)劃分的方法
- 一種無線傳感網(wǎng)地理位置路由空洞處理方法
- 節(jié)點(diǎn)鎖定部件、節(jié)點(diǎn)滑軌、節(jié)點(diǎn)和機(jī)箱
- 一種待推薦節(jié)點(diǎn)線路的確定方法及裝置
- 流控方法、目標(biāo)節(jié)點(diǎn)、節(jié)點(diǎn)及施主節(jié)點(diǎn)
- 節(jié)點(diǎn)布局確定方法以及裝置
- 一種具有分布式柔度的全柔順微位移放大機(jī)構(gòu)
- 節(jié)點(diǎn)掛載方法、裝置、網(wǎng)絡(luò)節(jié)點(diǎn)及存儲(chǔ)介質(zhì)





