本發(fā)明涉及一種基于versal?acap的高效transformer模型推理加速器的部署方法,屬于軟硬件協(xié)同加速數(shù)值計(jì)算領(lǐng)域。
背景技術(shù):
1、transformer是一種基于自注意力機(jī)制的神經(jīng)網(wǎng)絡(luò)架構(gòu),實(shí)現(xiàn)了序列到序列任務(wù)的顯著改進(jìn),transformer最初被設(shè)計(jì)用于機(jī)器翻譯任務(wù),但后來(lái)在自然語(yǔ)言處理領(lǐng)域取得了廣泛的應(yīng)用和成功,同時(shí)transformer在計(jì)算機(jī)視覺(jué)領(lǐng)域占有一席之地,性能優(yōu)于卷積神經(jīng)網(wǎng)絡(luò)。正是由于transformer的出現(xiàn),注意力機(jī)制成為主流,隨后出現(xiàn)了眾多基于transformer的語(yǔ)言或視覺(jué)模型(如bert,roberta和vit),使機(jī)器學(xué)習(xí)領(lǐng)域以前所未有的速度向前發(fā)展。
2、盡管transformer取得了相當(dāng)大的優(yōu)勢(shì),但這與模型巨大參數(shù)量密切相關(guān),密集的計(jì)算和巨大的內(nèi)存開(kāi)銷(xiāo)對(duì)阻礙了它們?cè)谠O(shè)備上的部署和普及。為了加快模型的推理速度,目前gpu是加速transformer的主要硬件平臺(tái),然而gpu于其本身硬件限制,較高的功耗難以避免,同時(shí)難以進(jìn)一步地定制化硬件結(jié)構(gòu)。在其他平臺(tái)(如fpga、asic),雖然它們都有較細(xì)的設(shè)計(jì)粒度,但可探索的設(shè)計(jì)空間較大,一般都有著較長(zhǎng)的設(shè)計(jì)周期與較大的開(kāi)發(fā)成本。
3、考慮到transformer的加速需求日益增加,傳統(tǒng)的硬件平臺(tái)實(shí)現(xiàn)的加速器效果不理想等問(wèn)題。本發(fā)明提出一種基于versal?acap的高效transformer模型推理加速器的部署方法。首先對(duì)模型進(jìn)行負(fù)載分析,同時(shí)根據(jù)硬件性能,確定ai引擎(aie)需要承擔(dān)的矩陣乘法種類(lèi)及規(guī)模,在硬件中部署多個(gè)矩陣乘法處理單元;之后再為aie配備數(shù)據(jù)發(fā)送器、數(shù)據(jù)接收器、以及非線性算子的硬件模塊;然后將這些模塊在硬件中合理地部署和連接,完成流水線并行化,實(shí)現(xiàn)多頭注意力階段與前饋神經(jīng)網(wǎng)絡(luò)階段的計(jì)算;最后將兩階段整合,實(shí)現(xiàn)整個(gè)編碼器/解碼器層的加速計(jì)算,從而加速上層模型的推理速度。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明與已有的transformer加速器部署方法不同,利用versal?acap的特性,提出一種基于versal?acap的高效transformer模型推理加速器的部署方法。首先,提取transformer模型的在運(yùn)算時(shí)需要的矩陣乘法算子規(guī)模,根據(jù)versal?acap的aie以及其周邊硬件性能,確定aie需要承擔(dān)的矩陣乘法種類(lèi)及規(guī)模。其次設(shè)計(jì)并實(shí)際部署多個(gè)矩陣乘法處理單元(pu)到aie陣列中,從而承擔(dān)transformer中的矩陣乘法負(fù)載;之后在versal?acap的pl端開(kāi)發(fā)為pu服務(wù)的數(shù)據(jù)發(fā)送器與數(shù)據(jù)接收器,同時(shí)開(kāi)發(fā)softmax、layernorm、gelu與矩陣轉(zhuǎn)置算子的硬件模塊,從而承擔(dān)除矩陣乘法外的剩余負(fù)載;之后利用已經(jīng)開(kāi)發(fā)好的硬件模塊,組合為線性層模塊(lb)與注意力模塊(atb),分別承擔(dān)transformer中一個(gè)線性層與點(diǎn)積注意力的計(jì)算,這些模塊能夠并行執(zhí)行;最后,將多個(gè)lb與atb之間使用內(nèi)部數(shù)據(jù)流連接,這些lb與atb間的連接能夠被重構(gòu),分別形成兩個(gè)階段:多頭注意力階段與前饋神經(jīng)網(wǎng)絡(luò)階段,兩個(gè)階段串行地完成完成一次transformer的多頭注意力與前饋神經(jīng)網(wǎng)絡(luò)的計(jì)算,最終實(shí)現(xiàn)整個(gè)編碼器/解碼器層的計(jì)算,從而加速上層模型的推理速度。本方法可分為以下五個(gè)步驟:
2、(1)transformer模型負(fù)載分析
3、本發(fā)明研究對(duì)象為transformer模型加速器,首先提取transformer模型的在運(yùn)算時(shí)需要的矩陣乘法算子規(guī)模,根據(jù)versal?acap的aie以及其周邊硬件性能,確定aie需要承擔(dān)的矩陣乘法種類(lèi)及規(guī)模,保證aie能夠被充分利用。
4、(2)在aie陣列中部署矩陣乘法處理單元
5、對(duì)于設(shè)計(jì)好aie矩陣乘法處理單元,利用aie?intrinsics開(kāi)發(fā)aie核心,保證aie內(nèi)部能夠順利地形成流水,以1周期作為迭代流水線迭代周期。之后通過(guò)aie?graph將多個(gè)aie核心之間連接,同時(shí)也要保證plio端口數(shù)據(jù)的高度復(fù)用,以在有限plio端口的情況下滿足大量aie核心的數(shù)據(jù)需求。
6、(3)設(shè)計(jì)pl數(shù)據(jù)發(fā)送器與接收器,設(shè)計(jì)非線性算子硬件模塊
7、在pl端為計(jì)算引擎中的多個(gè)矩陣乘法處理單元配備其專(zhuān)用的數(shù)據(jù)發(fā)送器與接收器與receiver,保證pl端數(shù)據(jù)引擎與計(jì)算引擎之間的數(shù)據(jù)交換速度不成為性能瓶頸,之后開(kāi)發(fā)非線性算子,同時(shí)保證pl端的模塊的處理速度不成為流水線中的性能瓶頸,從而發(fā)揮硬件的最大性能。
8、(4)將硬件模塊組合為線性層模塊與注意力模塊
9、以開(kāi)發(fā)完畢的模塊為基礎(chǔ),將其組合為多種線性層模塊與注意力模塊,同時(shí)將其之間使用內(nèi)部數(shù)據(jù)流連接,組成完整的多頭注意力階段與前饋神經(jīng)網(wǎng)絡(luò)階段,為組合最終的加速器架構(gòu)做準(zhǔn)備。
10、(5)調(diào)度多頭注意力階段與前饋神經(jīng)網(wǎng)絡(luò)階段
11、為兩階段分配硬件資源,使每個(gè)階段在執(zhí)行時(shí)都擁有全部的計(jì)算資源與存儲(chǔ)資源,在調(diào)度完畢后,最終得到一個(gè)transformer編碼器/解碼器層的輸出,之后在host端調(diào)用多次后,完成整個(gè)模型的推理加速。
12、本發(fā)明與現(xiàn)有技術(shù)相比,具有以下明顯的優(yōu)勢(shì)和有益效果:
13、首先,相比于傳統(tǒng)硬件實(shí)現(xiàn)的transformer加速器,本發(fā)明充分利用versal?acap的硬件可定制化特性,實(shí)現(xiàn)了transformer推理加速器部署架構(gòu),極大提高versal?acap的可用性。
14、其次,基于提出的基于versal?acap的高效transformer模型推理加速器部署方法開(kāi)發(fā)的加速器,有效提高了模型的吞吐量,降低了推理延遲,同時(shí)此加速器在批量推理方面具有巨大的優(yōu)勢(shì)。
15、最后,本發(fā)明并充分利用流水線并行策略、多通道數(shù)據(jù)傳輸器、共享片上緩存與aie手動(dòng)布局策略等優(yōu)化方法,提高系統(tǒng)整體性能,實(shí)現(xiàn)了硬件資源的最大化利用。
16、實(shí)驗(yàn)證實(shí),本發(fā)明在加速vit-base模型時(shí),在aie為1.33ghz,pl為300mhz頻率的條件下,多頭注意力階段的吞吐量為40.24tops,前饋神經(jīng)網(wǎng)絡(luò)階段的吞吐量為29.87tops,系統(tǒng)整體吞吐量為30.28tops,功耗為62.865w,能效為481.67gops/w。
1.基于versal?acap的高效transformer模型推理加速器的部署方法,其特征在于:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于:
6.根據(jù)權(quán)利要求1所述的方法,其特征在于: