本發(fā)明涉及計(jì)算機(jī),特別是涉及跨硬件架構(gòu)算子自適應(yīng)生成方法、裝置、設(shè)備及介質(zhì)。
背景技術(shù):
1、在現(xiàn)代高性能計(jì)算體系結(jié)構(gòu)中,異構(gòu)系統(tǒng)的廣泛應(yīng)用體現(xiàn)了計(jì)算需求的多樣化與復(fù)雜性,同一算子在不同計(jì)算加速器上的最優(yōu)實(shí)現(xiàn)因硬件架構(gòu)的不同而存在顯著差異,高效的算子實(shí)現(xiàn)通常需要進(jìn)行詳細(xì)的適配和優(yōu)化。
2、目前算子自動(dòng)實(shí)現(xiàn)方法主要包括以下幾種:基于模板的生成方法、基于規(guī)則的生成方法、基于中間表示的生成方法。其中,基于模板的生成方法通過使用預(yù)定義的模板實(shí)現(xiàn)自動(dòng)化生成,基于規(guī)則的生成方法則通過制定不同的優(yōu)化規(guī)則來提升算子的性能,基于中間表示的生成方法通過使用中間表示實(shí)現(xiàn)“一次編寫,多平臺(tái)生成”,這些跨硬件架構(gòu)算子自適應(yīng)生成方法靈活性較低,且增加系統(tǒng)復(fù)雜度。
3、可見,如何提高算子生成的靈活性和簡易度,是本領(lǐng)域技術(shù)人員需要解決的問題。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明實(shí)施例的目的是提供一種跨硬件架構(gòu)算子自適應(yīng)生成方法、裝置、設(shè)備及介質(zhì),提高算子生成的靈活性和簡易度。其具體方案如下:
2、第一方面,本發(fā)明公開了一種跨硬件架構(gòu)算子自適應(yīng)生成方法,包括:
3、從與待生成算子的算子類型對(duì)應(yīng)的算子描述中提取第一特征向量;
4、確定目標(biāo)架構(gòu)配置信息與所述第一特征向量的加權(quán)求和結(jié)果,并將二值化后的加權(quán)求和結(jié)果確定為第一標(biāo)識(shí),并從各預(yù)設(shè)計(jì)算加速器架構(gòu)適配網(wǎng)絡(luò)中篩選出標(biāo)識(shí)為所述第一標(biāo)識(shí)的目標(biāo)計(jì)算加速器架構(gòu)適配網(wǎng)絡(luò);其中,所述目標(biāo)架構(gòu)配置信息為與所述待生成算子對(duì)應(yīng)的目標(biāo)計(jì)算加速器的架構(gòu)配置信息,各所述預(yù)設(shè)計(jì)算加速器架構(gòu)適配網(wǎng)絡(luò)分別與各計(jì)算加速器類型對(duì)應(yīng);
5、對(duì)所述第一特征向量進(jìn)行二值化,以得到第二標(biāo)識(shí),并從各預(yù)設(shè)算子類型適配網(wǎng)絡(luò)中篩選出標(biāo)識(shí)為所述第二標(biāo)識(shí)的目標(biāo)算子類型適配網(wǎng)絡(luò);其中,各所述預(yù)設(shè)算子類型適配網(wǎng)絡(luò)分別與各算子類型對(duì)應(yīng);
6、利用所述目標(biāo)計(jì)算加速器架構(gòu)適配網(wǎng)絡(luò)、所述目標(biāo)算子類型適配網(wǎng)絡(luò)分別對(duì)所述第一特征向量進(jìn)行特征變換,并基于變換后得到的第二特征向量和第三特征向量生成所述待生成算子的算子序列。
7、可選的,所述從各預(yù)設(shè)計(jì)算加速器架構(gòu)適配網(wǎng)絡(luò)中篩選出標(biāo)識(shí)為所述第一標(biāo)識(shí)的目標(biāo)計(jì)算加速器架構(gòu)適配網(wǎng)絡(luò)之前,還包括:
8、采集包含計(jì)算加速器架構(gòu)特征信息和算子實(shí)例的第一訓(xùn)練集,并按照各計(jì)算加速器類型將所述第一訓(xùn)練集劃分為各第一子訓(xùn)練集;
9、構(gòu)建初始計(jì)算加速器適配網(wǎng)絡(luò),并利用各所述第一子訓(xùn)練集分別對(duì)所述初始計(jì)算加速器適配網(wǎng)絡(luò)進(jìn)行訓(xùn)練,以得到與各所述計(jì)算加速器類型分別對(duì)應(yīng)的預(yù)設(shè)計(jì)算加速器架構(gòu)適配網(wǎng)絡(luò);
10、根據(jù)各所述計(jì)算加速器類型的架構(gòu)配置信息生成對(duì)應(yīng)的所述預(yù)設(shè)計(jì)算加速器架構(gòu)適配網(wǎng)絡(luò)的標(biāo)識(shí)。
11、可選的,所述從各預(yù)設(shè)算子類型適配網(wǎng)絡(luò)中篩選出標(biāo)識(shí)為所述第二標(biāo)識(shí)的目標(biāo)算子類型適配網(wǎng)絡(luò)之前,還包括:
12、采集包含算子特征信息和算子實(shí)例的第二訓(xùn)練集,并按照各算子類型將所述第二訓(xùn)練集劃分為各第二子訓(xùn)練集;
13、構(gòu)建初始算子類型適配網(wǎng)絡(luò),并利用各所述第二子訓(xùn)練集分別對(duì)所述初始算子類型適配網(wǎng)絡(luò)進(jìn)行訓(xùn)練,以得到與各所述算子類型分別對(duì)應(yīng)的預(yù)設(shè)算子類型適配網(wǎng)絡(luò);
14、根據(jù)各所述算子類型的特征信息生成對(duì)應(yīng)的所述預(yù)設(shè)算子類型架構(gòu)適配網(wǎng)絡(luò)的標(biāo)識(shí)。
15、可選的,所述利用各所述第一子訓(xùn)練集分別對(duì)所述初始計(jì)算加速器適配網(wǎng)絡(luò)進(jìn)行訓(xùn)練,以得到與各所述計(jì)算加速器類型分別對(duì)應(yīng)的預(yù)設(shè)計(jì)算加速器架構(gòu)適配網(wǎng)絡(luò),包括:
16、基于預(yù)設(shè)網(wǎng)絡(luò)參數(shù)更新算法并利用各所述第一子訓(xùn)練集分別對(duì)所述初始計(jì)算加速器適配網(wǎng)絡(luò)進(jìn)行訓(xùn)練,以更新所述初始計(jì)算加速器適配網(wǎng)絡(luò)的權(quán)重,得到與各所述計(jì)算加速器類型分別對(duì)應(yīng)的預(yù)設(shè)計(jì)算加速器架構(gòu)適配網(wǎng)絡(luò);所述預(yù)設(shè)網(wǎng)絡(luò)參數(shù)更新算法為反向傳播算法、梯度下降算法、自適應(yīng)矩估計(jì)算法中任意一種算法;
17、相應(yīng)的,所述利用各所述第二子訓(xùn)練集分別對(duì)所述初始算子類型適配網(wǎng)絡(luò)進(jìn)行訓(xùn)練,以得到與各所述算子類型分別對(duì)應(yīng)的預(yù)設(shè)算子類型適配網(wǎng)絡(luò),包括:
18、基于所述預(yù)設(shè)網(wǎng)絡(luò)參數(shù)更新算法并利用各所述第二子訓(xùn)練集分別對(duì)所述初始算子類型適配網(wǎng)絡(luò)進(jìn)行訓(xùn)練,以更新所述初始算子類型適配網(wǎng)絡(luò)的權(quán)重,得到與各所述算子類型分別對(duì)應(yīng)的預(yù)設(shè)算子類型適配網(wǎng)絡(luò)。
19、可選的,所述確定目標(biāo)架構(gòu)配置信息與所述第一特征向量的加權(quán)求和結(jié)果,并將二值化后的加權(quán)求和結(jié)果確定為第一標(biāo)識(shí),包括:
20、確定所述待生成算子的目標(biāo)架構(gòu)配置信息的第一權(quán)重系數(shù)、所述第一特征向量的第二權(quán)重系數(shù);
21、利用所述第一權(quán)重系數(shù)、所述第二權(quán)重系數(shù)分別對(duì)所述目標(biāo)架構(gòu)配置信息、所述第一特征向量進(jìn)行加權(quán)求和,以得到加權(quán)求和結(jié)果;
22、利用多層全連接網(wǎng)絡(luò)對(duì)所述加權(quán)求和結(jié)果進(jìn)行非線性變換,以得到第一變換后結(jié)果,并對(duì)所述第一變換后結(jié)果進(jìn)行概率化處理,以得到第一概率化后結(jié)果,將二值化后的所述第一概率化后結(jié)果確定為第一標(biāo)識(shí);
23、相應(yīng)的,所述對(duì)所述第一特征向量進(jìn)行二值化,以得到第二標(biāo)識(shí),包括:
24、利用所述多層全連接網(wǎng)絡(luò)對(duì)所述第一特征向量進(jìn)行非線性變換,以得到第二變換后結(jié)果;
25、對(duì)所述第二變換后結(jié)果進(jìn)行概率化處理,以得到第二概率化后結(jié)果,將二值化后的所述第二概率化后結(jié)果確定為第二標(biāo)識(shí)。
26、可選的,所述基于變換后得到的第二特征向量和第三特征向量生成所述待生成算子的算子序列,包括:
27、將所述第二特征向量與所述第三特征向量進(jìn)行融合,以得到融合后特征向量,并利用所述融合后特征向量生成所述待生成算子的初始序列;
28、將所述初始序列中的冗余元素剔除,以得到清洗后序列,并對(duì)所述清洗后序列中各個(gè)元素的順序進(jìn)行調(diào)整,以得到所述待生成算子的算子序列。
29、可選的,所述將所述第二特征向量與所述第三特征向量進(jìn)行融合,以得到融合后特征向量,包括:
30、確定所述第二特征向量的第一均值、第一方差以及所述第三特征向量的第二均值、第二方差;
31、利用所述第一均值、所述第一方差對(duì)所述第二特征向量進(jìn)行標(biāo)準(zhǔn)化處理,以得到標(biāo)準(zhǔn)化的第二特征向量,并利用所述第二均值、所述第二方差對(duì)所述第二特征向量進(jìn)行標(biāo)準(zhǔn)化處理,以得到標(biāo)準(zhǔn)化的第三特征向量;
32、獲取所述第一方差與所述標(biāo)準(zhǔn)化的第三特征向量的第一乘積以及所述第二方差與所述標(biāo)準(zhǔn)化的第二特征向量的第二乘積;
33、為所述第一乘積與所述第一均值的第一和值配置第一權(quán)重值,并為所述第二乘積與所述第二均值的第二和值配置第二權(quán)重值,然后基于所述第一權(quán)重值和所述第二權(quán)重值對(duì)所述第一和值和所述第二和值進(jìn)行加權(quán)計(jì)算,以得到相應(yīng)的融合后特征向量。
34、第二方面,本發(fā)明公開了一種跨硬件架構(gòu)算子自適應(yīng)生成裝置,包括:
35、第一特征獲取模塊,用于從與待生成算子的算子類型對(duì)應(yīng)的算子描述中提取第一特征向量;
36、第一網(wǎng)絡(luò)篩選模塊,用于確定目標(biāo)架構(gòu)配置信息與所述第一特征向量的加權(quán)求和結(jié)果,并將二值化后的加權(quán)求和結(jié)果確定為第一標(biāo)識(shí),并從各預(yù)設(shè)計(jì)算加速器架構(gòu)適配網(wǎng)絡(luò)中篩選出標(biāo)識(shí)為所述第一標(biāo)識(shí)的目標(biāo)計(jì)算加速器架構(gòu)適配網(wǎng)絡(luò);其中,所述目標(biāo)架構(gòu)配置信息為與所述待生成算子對(duì)應(yīng)的目標(biāo)計(jì)算加速器的架構(gòu)配置信息,各所述預(yù)設(shè)計(jì)算加速器架構(gòu)適配網(wǎng)絡(luò)分別與各計(jì)算加速器類型對(duì)應(yīng);
37、第二網(wǎng)絡(luò)篩選模塊,用于對(duì)所述第一特征向量進(jìn)行二值化,以得到第二標(biāo)識(shí),并從各預(yù)設(shè)算子類型適配網(wǎng)絡(luò)中篩選出標(biāo)識(shí)為所述第二標(biāo)識(shí)的目標(biāo)算子類型適配網(wǎng)絡(luò);其中,各所述預(yù)設(shè)算子類型適配網(wǎng)絡(luò)分別與各算子類型對(duì)應(yīng);
38、算子序列生成模塊,用于利用所述目標(biāo)計(jì)算加速器架構(gòu)適配網(wǎng)絡(luò)、所述目標(biāo)算子類型適配網(wǎng)絡(luò)分別對(duì)所述第一特征向量進(jìn)行特征變換,并基于變換后得到的第二特征向量和第三特征向量生成所述待生成算子的算子序列。
39、第三方面,本發(fā)明公開了一種電子設(shè)備,包括:
40、存儲(chǔ)器,用于保存計(jì)算機(jī)程序;
41、處理器,用于執(zhí)行所述計(jì)算機(jī)程序,以實(shí)現(xiàn)前述公開的跨硬件架構(gòu)算子自適應(yīng)生成方法的步驟。
42、第四方面,本發(fā)明公開了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),用于存儲(chǔ)計(jì)算機(jī)程序;其中,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)前述公開的跨硬件架構(gòu)算子自適應(yīng)生成方法的步驟。
43、由此可見,本發(fā)明從與待生成算子的算子類型對(duì)應(yīng)的算子描述中提取第一特征向量;確定目標(biāo)架構(gòu)配置信息與所述第一特征向量的加權(quán)求和結(jié)果,并將二值化后的加權(quán)求和結(jié)果確定為第一標(biāo)識(shí),并從各預(yù)設(shè)計(jì)算加速器架構(gòu)適配網(wǎng)絡(luò)中篩選出標(biāo)識(shí)為所述第一標(biāo)識(shí)的目標(biāo)計(jì)算加速器架構(gòu)適配網(wǎng)絡(luò);其中,所述目標(biāo)架構(gòu)配置信息為與所述待生成算子對(duì)應(yīng)的目標(biāo)計(jì)算加速器的架構(gòu)配置信息,各所述預(yù)設(shè)計(jì)算加速器架構(gòu)適配網(wǎng)絡(luò)分別與各計(jì)算加速器類型對(duì)應(yīng);對(duì)所述第一特征向量進(jìn)行二值化,以得到第二標(biāo)識(shí),并從各預(yù)設(shè)算子類型適配網(wǎng)絡(luò)中篩選出標(biāo)識(shí)為所述第二標(biāo)識(shí)的目標(biāo)算子類型適配網(wǎng)絡(luò);其中,各所述預(yù)設(shè)算子類型適配網(wǎng)絡(luò)分別與各算子類型對(duì)應(yīng);利用所述目標(biāo)計(jì)算加速器架構(gòu)適配網(wǎng)絡(luò)、所述目標(biāo)算子類型適配網(wǎng)絡(luò)分別對(duì)所述第一特征向量進(jìn)行特征變換,并基于變換后得到的第二特征向量和第三特征向量生成所述待生成算子的算子序列。
44、有益效果:本發(fā)明中各預(yù)設(shè)計(jì)算加速器架構(gòu)適配網(wǎng)絡(luò)分別與各計(jì)算加速器類型對(duì)應(yīng)、各預(yù)設(shè)算子類型適配網(wǎng)絡(luò)分別與各算子類型對(duì)應(yīng),目標(biāo)架構(gòu)配置信息與待生成算子對(duì)應(yīng)的目標(biāo)計(jì)算加速器的架構(gòu)配置信息,因此利用目標(biāo)架構(gòu)配置信息從各預(yù)設(shè)計(jì)算加速器架構(gòu)適配網(wǎng)絡(luò)中篩選出的目標(biāo)計(jì)算加速器架構(gòu)適配網(wǎng)絡(luò)是與待生成算子的目標(biāo)計(jì)算加速器對(duì)應(yīng)的,同理,算子描述包括與待生成算子的算子類型對(duì)應(yīng)的描述,那么從待生成算子的算子描述中提取第一特征向量,并利用第一特征向量從各預(yù)設(shè)算子類型適配網(wǎng)絡(luò)中篩選出的目標(biāo)算子類型適配網(wǎng)絡(luò)是與待生成算子的算子類型對(duì)應(yīng)的,如此一來,目標(biāo)計(jì)算加速器架構(gòu)適配網(wǎng)絡(luò)輸出的第二特征向量、目標(biāo)算子類型適配網(wǎng)絡(luò)輸出的第三特征向量則分別適配于待生成算子的目標(biāo)計(jì)算加速器、算子類型,最終將述第二特征向量與第三特征向量進(jìn)行融合得到的待生成算子的算子序列既可以適配于目標(biāo)計(jì)算加速器,也滿足待生成算子的算子類型,因此,本發(fā)明即使面對(duì)不同的計(jì)算加速器、算子類型都可以靈活生成算子序列,又因?yàn)楦黝A(yù)設(shè)計(jì)算加速器架構(gòu)適配網(wǎng)絡(luò)分別與各計(jì)算加速器類型對(duì)應(yīng)、各預(yù)設(shè)算子類型適配網(wǎng)絡(luò)分別與各算子類型對(duì)應(yīng),也就是說,當(dāng)存在新的計(jì)算加速器、新的算子類型,則可以單獨(dú)增加新的預(yù)設(shè)計(jì)算加速器架構(gòu)適配網(wǎng)絡(luò)、新的預(yù)設(shè)算子類型適配網(wǎng)絡(luò),不需要對(duì)整個(gè)預(yù)設(shè)計(jì)算加速器架構(gòu)適配網(wǎng)絡(luò)、預(yù)設(shè)計(jì)算加速器架構(gòu)適配網(wǎng)絡(luò)進(jìn)行重新訓(xùn)練,訓(xùn)練難度大大降低,進(jìn)而提高算子生成的簡易度。