[發明專利]基于異構平臺的自適應節點融合編譯優化方法有效
| 申請號: | 201910885756.1 | 申請日: | 2019-09-19 |
| 公開(公告)號: | CN112527304B | 公開(公告)日: | 2022-10-04 |
| 發明(設計)人: | 王飛;沈莉;吳偉;胡浩;錢宏 | 申請(專利權)人: | 無錫江南計算技術研究所 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41;G06F16/901;G06K9/62 |
| 代理公司: | 蘇州創元專利商標事務所有限公司 32103 | 代理人: | 王健 |
| 地址: | 214083 江蘇*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 平臺 自適應 節點 融合 編譯 優化 方法 | ||
1.一種基于異構平臺的自適應節點融合編譯優化方法,其特征在于:包括以下步驟:
S1、源程序經過編譯器的編譯處理,生成編譯器的中間表示DAG,對DAG進行降級處理,并在DAG降級階段,對DAG進行以下操作:
S2、進行DAG融合子圖識別,進一步包括以下步驟:
S21、對DAG進行拓撲排序、得到拓撲序列,將DAG中的節點按照拓撲序列的順序,添加到節點融合優化的工作列表中;
S22、編譯器自S21生成的工作列表的首節點開始,順序取出工作列表的一個節點,并將此節點從工作列表中刪除,檢查此節點的操作碼、操作數值類型和結果值類型,若此節點的操作碼、操作數值類型以及結構值類型是合法的,則此節點進行節點融合,執行S23,否則繼續進行S22,直到工作列表為空,轉到S71;
S23、以S22中取出的節點為根節點,根據編譯器后端的DAG子圖匹配模板,使用圖匹配算法,找到所有以S22中取出的節點為根節點的、可進行節點融合的n個DAG子圖,轉到S24;
S24、若S23未找到可進行節點融合的DAG子圖,則轉到S22,否則轉到S31;
S3、S23中找到的n個可進行節點融合的DAG子圖一一對應n種節點融合策略,根據第k個節點融合策略,將S23找到的第k個可進行節點融合的DAG子圖進行節點融合,其中,k=1,2,3,4,...,n,將第k個可進行節點融合的DAG子圖的多個節點融合為一個節點,并將第k個DAG子圖和Pattern模板進行匹配,獲得Pattern模板的輸出子圖,從而生成第k個可進行節點融合的DAG子圖的融合后的DAG子圖,編譯器記錄融合后的DAG子圖的所有節點,轉到S41;
S4、融合策略代價評估,即根據S3中融合后的DAG子圖所有節點的數據引用和異構平臺的指令集信息,計算將S3中生成的融合后的第k個DAG子圖轉換為指令序列后,運行該段指令序列中的指令所要花費的代價,所述代價包括花費的時鐘周期數、寄存器數以及占用內存的大小,轉到S51;
S5、自適應選擇節點融合策略,即根據S4計算得到的第k個融合策略代價,結合目標后端的寄存器、cache、內存使用情況,自適應地選擇最優的節點融合策略,即對目標后端提升性能效果最好的節點融合策略,轉到S6;
S6、目標相關節點融合,即根據S5選擇出的節點融合策略,將S23中匹配得到的DAG子圖的控制流和數據流關系,轉移到由S5選擇出的節點融合策略所生成的融合后的DAG子圖上,并使用融合后的DAG子圖替換融合前的DAG子圖,轉到S22;
S7、生成目標代碼,即編譯器對降級完成后的DAG進行編譯處理,生成異構平臺代碼。
2.根據權利要求1所述的基于異構平臺的自適應節點融合編譯優化方法,其特征在于:所述工作列表是一種線性的數據結構,包含所有待處理的節點。
3.根據權利要求1所述的基于異構平臺的自適應節點融合編譯優化方法,其特征在于:不同的根節點對應不同的DAG子圖匹配模板,所述DAG子圖匹配模板也是一個DAG子圖。
4.根據權利要求1所述的基于異構平臺的自適應節點融合編譯優化方法,其特征在于:DAG中的一個節點對應異構平臺的指令集中的一條指令。
5.根據權利要求1所述的基于異構平臺的自適應節點融合編譯優化方法,其特征在于:S23中匹配得到的DAG子圖即與融合后的DAG子圖對應的、節點融合優化前的DAG子圖。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于無錫江南計算技術研究所,未經無錫江南計算技術研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910885756.1/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:在線視頻的播放方法、裝置及存儲介質
- 下一篇:沉箱模板





