[發(fā)明專利]深度學(xué)習(xí)框架編譯器寬度非一致自動向量優(yōu)化方法有效
| 申請?zhí)枺?/td> | 201910885725.6 | 申請日: | 2019-09-19 |
| 公開(公告)號: | CN112527262B | 公開(公告)日: | 2022-10-04 |
| 發(fā)明(設(shè)計(jì))人: | 沈莉;周文浩;王飛;武文浩;肖謙 | 申請(專利權(quán))人: | 無錫江南計(jì)算技術(shù)研究所 |
| 主分類號: | G06F8/30 | 分類號: | G06F8/30;G06F8/41;G06N20/00 |
| 代理公司: | 蘇州創(chuàng)元專利商標(biāo)事務(wù)所有限公司 32103 | 代理人: | 王健 |
| 地址: | 214083 江蘇*** | 國省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 深度 學(xué)習(xí) 框架 編譯器 寬度 一致 自動 向量 優(yōu)化 方法 | ||
本發(fā)明公開一種深度學(xué)習(xí)框架編譯器寬度非一致自動向量優(yōu)化方法,基于異構(gòu)平臺,包括以下步驟:S1、框架編譯器前端識別計(jì)算圖中可進(jìn)行向量優(yōu)化的子圖,S2、框架編譯器中端對步驟S15標(biāo)記的可進(jìn)行向量優(yōu)化的子圖中的算子進(jìn)行融合,并計(jì)算圖編譯為底層IR,S3、框架編譯器后端根據(jù)異構(gòu)眾核處理器的控制核心和計(jì)算核心的向量寬度,分別對步驟S2中獲得的底層IR進(jìn)行寬度非一致的向量優(yōu)化,S4、框架編譯器的代碼生成模塊將步驟S32獲得的向量優(yōu)化后的底層IR轉(zhuǎn)換為用戶指定的高級語言代碼,并通過基礎(chǔ)編譯器生成向量優(yōu)化后的平臺目標(biāo)碼。本發(fā)明進(jìn)一步的挖掘深度學(xué)習(xí)負(fù)載的指令集并行性能,提升深度學(xué)習(xí)負(fù)載的向量化程度,從而提升深度學(xué)習(xí)負(fù)載在異構(gòu)眾核平臺上的推理性能。
技術(shù)領(lǐng)域
本發(fā)明涉及一種深度學(xué)習(xí)框架編譯器寬度非一致自動向量優(yōu)化方法,屬于深度學(xué)習(xí)技術(shù)領(lǐng)域。
背景技術(shù)
深度學(xué)習(xí)工作負(fù)載需要部署在特定硬件才能夠充分發(fā)揮其作用。目前深度學(xué)習(xí)領(lǐng)域開發(fā)人員設(shè)計(jì)了多種框架,例如Tensorflow、Caffe等,來完成深度學(xué)習(xí)模型的訓(xùn)練和推斷任務(wù),同時硬件廠商也推出了多種硬件后端,例如GPU、FPGA等,來加速深度學(xué)習(xí)模型的訓(xùn)練和推斷速度。大量不同的深度學(xué)習(xí)框架和越來越多的硬件架構(gòu)之間需要一個橋梁。深度學(xué)習(xí)框架編譯器作為一個完整的優(yōu)化工具鏈,提供了將不同框架的深度學(xué)習(xí)工作負(fù)載部署到各種硬件設(shè)備上的端到端解決方案。
國產(chǎn)異構(gòu)眾核處理器采用新型的片上異構(gòu)融合體系結(jié)構(gòu),在基本指令系統(tǒng)的基礎(chǔ)上,增加了向量擴(kuò)展指令系統(tǒng),以增強(qiáng)處理器指令集并行能力,實(shí)現(xiàn)了多種類型的向量擴(kuò)展加速指令,非常適合加速深度學(xué)習(xí)模型的推理任務(wù)。指令級并行是提高程序運(yùn)行性能的一種主流手段,向量指令被廣泛用于提升課題的指令集并行優(yōu)化上,且達(dá)到很好的優(yōu)化效果。深度學(xué)習(xí)的推理過程同時對大量數(shù)據(jù)進(jìn)行相同操作,因此非常適合進(jìn)行向量優(yōu)化。
目前異構(gòu)眾核是高性能計(jì)算硬件平臺發(fā)展的趨勢,但是在功耗、面積、頻率的限制下,主從異構(gòu)設(shè)計(jì)的差異性也越來越大,主控制或主計(jì)算分別成為主核和從核的區(qū)分標(biāo)志。在向量寬度的設(shè)計(jì)上,控制核心并不需要太高的向量寬度,而計(jì)算核心則更講究計(jì)算的數(shù)據(jù)效率,即主核和從核在短向量的寬度選擇上并不會采取統(tǒng)一的寬度標(biāo)準(zhǔn)。
GCC和LLVM等基礎(chǔ)編譯器中的自動向量優(yōu)化遍能夠發(fā)現(xiàn)高級語言中存在優(yōu)化潛力的代碼段,并自動對其進(jìn)行向量優(yōu)化。然而,在深度學(xué)習(xí)負(fù)載的部署過程中,框架編譯器在生成C++和LLVM IR等高級語言代碼的同時丟失了部分計(jì)算圖信息,很多具有優(yōu)化潛力的代碼段無法被基礎(chǔ)編譯器識別,導(dǎo)致深度學(xué)習(xí)負(fù)載無法充分發(fā)揮國產(chǎn)眾核處理器的全部性能。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種深度學(xué)習(xí)框架編譯器寬度非一致自動向量優(yōu)化方法,該深度學(xué)習(xí)框架編譯器寬度非一致自動向量優(yōu)化方法進(jìn)一步的挖掘深度學(xué)習(xí)負(fù)載的指令集并行性能,提升深度學(xué)習(xí)負(fù)載的向量化程度,從而提升深度學(xué)習(xí)負(fù)載在異構(gòu)眾核平臺上的推理性能。
為達(dá)到上述目的,本發(fā)明采用的技術(shù)方案是:一種深度學(xué)習(xí)框架編譯器寬度非一致自動向量優(yōu)化方法,基于異構(gòu)平臺,包括以下步驟:
S1、框架編譯器前端識別計(jì)算圖中可進(jìn)行向量優(yōu)化的子圖,具體如下:
S11、以通過AI框架生成的深度學(xué)習(xí)負(fù)載作為輸入,框架編譯器根據(jù)AI框架的類型,識別深度學(xué)習(xí)負(fù)載的模型格式,并將深度學(xué)習(xí)負(fù)載轉(zhuǎn)換為統(tǒng)一的計(jì)算圖;
S12、框架編譯器遍歷步驟S11中獲得的整個計(jì)算圖,識別出計(jì)算圖中可進(jìn)行向量優(yōu)化的子圖,具體方法如下:
S13、框架編譯器分析S11中獲得的計(jì)算圖中的數(shù)據(jù)依賴關(guān)系,構(gòu)建計(jì)算圖的數(shù)據(jù)依賴圖,并基于數(shù)據(jù)依賴圖,構(gòu)建包含數(shù)據(jù)和語句依賴信息的有向圖,使同一條語句內(nèi)的所有數(shù)據(jù)節(jié)點(diǎn)都在一個強(qiáng)連通分量內(nèi),并對強(qiáng)連通分量之間的依賴邊進(jìn)行剪枝,實(shí)現(xiàn)有向圖的更新操作;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于無錫江南計(jì)算技術(shù)研究所,未經(jīng)無錫江南計(jì)算技術(shù)研究所許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910885725.6/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 根據(jù)用戶學(xué)習(xí)效果動態(tài)變化下載學(xué)習(xí)數(shù)據(jù)的系統(tǒng)及方法
- 用于智能個人化學(xué)習(xí)服務(wù)的方法
- 漸進(jìn)式學(xué)習(xí)管理方法及漸進(jìn)式學(xué)習(xí)系統(tǒng)
- 輔助學(xué)習(xí)的方法及裝置
- 基于人工智能的課程推薦方法、裝置、設(shè)備及存儲介質(zhì)
- 基于強(qiáng)化學(xué)習(xí)的自適應(yīng)移動學(xué)習(xí)路徑生成方法
- 一種線上視頻學(xué)習(xí)系統(tǒng)
- 一種基于校園大數(shù)據(jù)的自適應(yīng)學(xué)習(xí)方法、裝置及設(shè)備
- 一種學(xué)習(xí)方案推薦方法、裝置、設(shè)備和存儲介質(zhì)
- 游戲?qū)W習(xí)效果評測方法及系統(tǒng)





