本發(fā)明屬于神經(jīng)網(wǎng)絡(luò)加速及處理單元設(shè)計,提出了通用神經(jīng)網(wǎng)絡(luò)計算單元。
背景技術(shù):
1、近年來,人工智能技術(shù)迅猛發(fā)展,尤其是在神經(jīng)網(wǎng)絡(luò)領(lǐng)域。卷積神經(jīng)網(wǎng)絡(luò)(cnn)和transformer這兩種網(wǎng)絡(luò)結(jié)構(gòu)已經(jīng)成為了計算機視覺和自然語言處理等領(lǐng)域的核心技術(shù)。cnn因其出色的圖像處理能力而廣受歡迎,而transformer則因其在處理序列數(shù)據(jù)方面的優(yōu)越性能而備受關(guān)注。這些技術(shù)的快速迭代和優(yōu)化,使得它們能夠有效處理越來越復(fù)雜的任務(wù)。
2、隨著單一網(wǎng)絡(luò)結(jié)構(gòu)難以滿足日益復(fù)雜的應(yīng)用需求,混合神經(jīng)網(wǎng)絡(luò)應(yīng)運而生。這類網(wǎng)絡(luò)結(jié)構(gòu)融合了多種不同的算法和技術(shù),例如將cnn的圖像識別能力與transformer的序列處理能力結(jié)合起來,以期達到更加優(yōu)越的性能。在這些混合網(wǎng)絡(luò)中,不同類型的算子(如卷積算子、矩陣乘法算子等)被集成在單一的網(wǎng)絡(luò)架構(gòu)中,以處理不同的數(shù)據(jù)類型和任務(wù)。
3、盡管混合神經(jīng)網(wǎng)絡(luò)在理論上能夠提供卓越的性能,但現(xiàn)實中其實現(xiàn)面臨著多個技術(shù)挑戰(zhàn)。傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)計算單元大多設(shè)計來優(yōu)化特定類型的算子,如卷積算子,而不足以高效處理多樣化的計算任務(wù)。特別是在包含transformer結(jié)構(gòu)的網(wǎng)絡(luò)中,由于其復(fù)雜的計算圖和高數(shù)據(jù)密集度的特性,對計算單元的性能和靈活性提出了更高的要求。這種局限性導(dǎo)致了計算效率低下和數(shù)據(jù)調(diào)度上的困難。
4、針對上述問題,本申請致力于提出一種適配多種神經(jīng)網(wǎng)絡(luò)算子的神經(jīng)網(wǎng)絡(luò)計算單元。
技術(shù)實現(xiàn)思路
1、本發(fā)明的目的在于解決由transformer廣泛應(yīng)用導(dǎo)致的面向卷積的神經(jīng)網(wǎng)絡(luò)計算單元存在計算效率低、數(shù)據(jù)調(diào)度困難的問題,提出了一種通用神經(jīng)網(wǎng)絡(luò)計算單元,所述單元通過在輸入數(shù)據(jù)一級讀寫控制模塊及權(quán)重數(shù)據(jù)一級讀寫控制模塊后分別引入零級緩沖區(qū)及零級緩沖區(qū)控制器,得到改進后的計算單元;改進后的計算單元分別對輸入數(shù)據(jù)以及權(quán)重數(shù)據(jù)再次進行緩沖和讀寫控制,不僅能處理不同類型的算子,還能簡化數(shù)據(jù)通路和控制邏輯,從而提高整體的計算效率和靈活性;本計算單元還解決了全局緩沖區(qū)與計算單元間在帶寬和數(shù)據(jù)格式上的不匹配問題,進而實現(xiàn)了不同算子間讀寫控制邏輯的統(tǒng)一。
2、為了實現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案。
3、一種通用神經(jīng)網(wǎng)絡(luò)計算單元,與外部存儲器及其控制器相連,包含中控模塊、一級緩沖區(qū)、一級緩沖區(qū)控制器、零級緩沖區(qū)、零級緩沖區(qū)控制器和核心計算單元;
4、所述一級緩沖區(qū),包括輸入數(shù)據(jù)一級緩沖區(qū)、權(quán)重數(shù)據(jù)一級緩沖區(qū)、量化權(quán)重數(shù)據(jù)緩沖區(qū)、部分和數(shù)據(jù)緩沖區(qū)和輸出數(shù)據(jù)緩沖區(qū);
5、所述一級緩沖區(qū)控制器,包含輸入數(shù)據(jù)一級讀寫控制模塊、權(quán)重數(shù)據(jù)一級讀寫控制模塊、輸出數(shù)據(jù)讀寫控制模塊、部分和數(shù)據(jù)讀寫控制模塊和量化權(quán)重數(shù)據(jù)讀寫控制模塊;
6、所述零級緩沖區(qū),包括輸入數(shù)據(jù)零級緩沖區(qū)和權(quán)重數(shù)據(jù)零級緩沖區(qū);
7、所述零級緩沖區(qū)控制器,包括輸入數(shù)據(jù)零級讀寫控制模塊以及權(quán)重數(shù)據(jù)零級讀寫控制模塊;
8、所述一級緩沖區(qū)與外部控制器及一級緩沖區(qū)控制器相連;所述零級緩沖區(qū)分別與一級緩沖區(qū)控制器及零級緩沖區(qū)控制器相連;所述核心計算單元分別與零級緩沖區(qū)控制器以及輸出數(shù)據(jù)讀寫控制模塊相連。
9、所述中控模塊分別與一級緩沖區(qū)控制器、零級緩沖區(qū)控制器及核心計算單元相連。
10、所述一級緩沖區(qū)控制器中的部分和數(shù)據(jù)讀寫控制模塊和量化權(quán)重數(shù)據(jù)讀寫控制模塊以及零級緩沖區(qū)控制器分別接入核心計算單元的廣播控制模塊中。
11、所述核心計算單元分別與部分和數(shù)據(jù)讀寫控制模塊、量化權(quán)重數(shù)據(jù)讀寫控制模塊、輸入數(shù)據(jù)零級讀寫控制模塊、權(quán)重數(shù)據(jù)零級讀寫控制模塊以及輸出數(shù)據(jù)讀寫控制模塊相連。
12、所述核心計算單元,包含廣播控制模塊、乘法器陣列、加法器陣列、累加器陣列及量化陣列。
13、所述廣播控制模塊、乘法器陣列、加法樹陣列、累加器陣列和量化模塊按順序相連。
14、所述一級緩沖區(qū)負責(zé)存儲神經(jīng)網(wǎng)絡(luò)計算前所需要的輸入特征圖數(shù)據(jù)、權(quán)重數(shù)據(jù)和量化權(quán)重數(shù)據(jù)、神經(jīng)網(wǎng)絡(luò)計算過程中可能產(chǎn)生的部分和數(shù)據(jù)及神經(jīng)網(wǎng)絡(luò)計算后所產(chǎn)生的輸出數(shù)據(jù);所述輸入數(shù)據(jù)一級緩沖區(qū)用于存儲輸入特征圖數(shù)據(jù),權(quán)重數(shù)據(jù)一級緩沖區(qū)用于存儲權(quán)重數(shù)據(jù),量化權(quán)重數(shù)據(jù)緩沖區(qū)用于存儲量化權(quán)重數(shù)據(jù),部分和數(shù)據(jù)緩沖區(qū)用于存儲部分和數(shù)據(jù),輸出數(shù)據(jù)緩沖區(qū)用于存儲輸出數(shù)據(jù)。
15、所述一級緩沖區(qū)控制器通過接收指令,實時調(diào)整讀寫控制邏輯,以進行計算資源調(diào)度;所述輸入數(shù)據(jù)一級讀寫控制模塊負責(zé)實現(xiàn)輸入數(shù)據(jù)的數(shù)據(jù)重排和部分補零工作;權(quán)重數(shù)據(jù)一級讀寫控制模塊負責(zé)實現(xiàn)權(quán)重數(shù)據(jù)的數(shù)據(jù)重排工作,以適配核心計算單元的計算需求;輸出數(shù)據(jù)讀寫控制模塊負責(zé)實現(xiàn)可能存在的輸出數(shù)據(jù)的數(shù)據(jù)重排工作;部分和數(shù)據(jù)控制讀寫控制模塊和量化權(quán)重數(shù)據(jù)讀寫模塊負責(zé)實現(xiàn)部分和數(shù)據(jù)和量化權(quán)重數(shù)據(jù)的直接讀取工作。
16、所述零級緩沖區(qū)接收指令并通過零級輸入數(shù)據(jù)緩沖區(qū)和零級權(quán)重數(shù)據(jù)緩沖區(qū)用于緩存數(shù)據(jù)重排后的輸入數(shù)據(jù)和權(quán)重數(shù)據(jù);對零級緩沖區(qū)進行讀寫控制,用于實現(xiàn)實時調(diào)控數(shù)據(jù)讀取和計算速度。
17、有益效果
18、本發(fā)明提出了一種通用神經(jīng)網(wǎng)絡(luò)計算單元,相對于現(xiàn)有神經(jīng)網(wǎng)絡(luò)加速器,具有以下有益效果:
19、1.所述計算單元依托于數(shù)據(jù)多級存儲和訪問機制,充分利用神經(jīng)網(wǎng)絡(luò)計算過程中的數(shù)據(jù)局部性特點和數(shù)據(jù)排布特點,解耦了數(shù)據(jù)讀取邏輯和重排邏輯,解決了存儲子系統(tǒng)與計算子系統(tǒng)間面向不同神經(jīng)網(wǎng)絡(luò)算子時數(shù)據(jù)帶寬和數(shù)據(jù)格式不一致問題;
20、2.所述計算單元同時在三個循環(huán)維度上做并行計算,充分地利用了神經(jīng)網(wǎng)絡(luò)中輸入數(shù)據(jù)為高維張量的數(shù)據(jù)特性,提高了計算速度的上限;
21、3.所述計算單元采用統(tǒng)一的數(shù)據(jù)流控制和傳輸機制,設(shè)計了特定的緩沖區(qū)結(jié)構(gòu),實現(xiàn)了對緩沖區(qū)上下游數(shù)據(jù)的靈活讀寫,提高了計算效率。
1.一種通用神經(jīng)網(wǎng)絡(luò)計算單元,與外部存儲器及其控制器相連,其特征在于,包含中控模塊、一級緩沖區(qū)、一級緩沖區(qū)控制器、零級緩沖區(qū)、零級緩沖區(qū)控制器和核心計算單元;
2.根據(jù)權(quán)利要求1所述的一種通用神經(jīng)網(wǎng)絡(luò)計算單元,其特征在于,所述中控模塊分別與一級緩沖區(qū)控制器、零級緩沖區(qū)控制器及核心計算單元相連。
3.根據(jù)權(quán)利要求2所述的一種通用神經(jīng)網(wǎng)絡(luò)計算單元,其特征在于,一級緩沖區(qū)控制器中的部分和數(shù)據(jù)讀寫控制模塊和量化權(quán)重數(shù)據(jù)讀寫控制模塊以及零級緩沖區(qū)控制器分別接入核心計算單元的廣播控制模塊中。
4.根據(jù)權(quán)利要求3所述的一種通用神經(jīng)網(wǎng)絡(luò)計算單元,其特征在于,核心計算單元分別與部分和數(shù)據(jù)讀寫控制模塊、量化權(quán)重數(shù)據(jù)讀寫控制模塊、輸入數(shù)據(jù)零級讀寫控制模塊、權(quán)重數(shù)據(jù)零級讀寫控制模塊以及輸出數(shù)據(jù)讀寫控制模塊相連。
5.根據(jù)權(quán)利要求4所述的一種通用神經(jīng)網(wǎng)絡(luò)計算單元,其特征在于,所述核心計算單元,包含廣播控制模塊、乘法器陣列、加法器陣列、累加器陣列及量化陣列。
6.根據(jù)權(quán)利要求5所述的一種通用神經(jīng)網(wǎng)絡(luò)計算單元,其特征在于,所述廣播控制模塊、乘法器陣列、加法樹陣列、累加器陣列和量化模塊按順序相連。
7.根據(jù)權(quán)利要求6所述的一種通用神經(jīng)網(wǎng)絡(luò)計算單元,其特征在于,所述一級緩沖區(qū)負責(zé)存儲神經(jīng)網(wǎng)絡(luò)計算前所需要的輸入特征圖數(shù)據(jù)、權(quán)重數(shù)據(jù)和量化權(quán)重數(shù)據(jù)、神經(jīng)網(wǎng)絡(luò)計算過程中可能產(chǎn)生的部分和數(shù)據(jù)及神經(jīng)網(wǎng)絡(luò)計算后所產(chǎn)生的輸出數(shù)據(jù);所述輸入數(shù)據(jù)一級緩沖區(qū)用于存儲輸入特征圖數(shù)據(jù),權(quán)重數(shù)據(jù)一級緩沖區(qū)用于存儲權(quán)重數(shù)據(jù),量化權(quán)重數(shù)據(jù)緩沖區(qū)用于存儲量化權(quán)重數(shù)據(jù),部分和數(shù)據(jù)緩沖區(qū)用于存儲部分和數(shù)據(jù),輸出數(shù)據(jù)緩沖區(qū)用于存儲輸出數(shù)據(jù)。
8.根據(jù)權(quán)利要求7所述的一種通用神經(jīng)網(wǎng)絡(luò)計算單元,其特征在于,一級緩沖區(qū)控制器通過接收指令,實時調(diào)整讀寫控制邏輯,以調(diào)度計算資源;所述輸入數(shù)據(jù)一級讀寫控制模塊負責(zé)實現(xiàn)輸入數(shù)據(jù)的數(shù)據(jù)重排和部分補零工作;權(quán)重數(shù)據(jù)一級讀寫控制模塊負責(zé)實現(xiàn)權(quán)重數(shù)據(jù)的數(shù)據(jù)重排工作,以適配核心計算單元的計算需求。
9.根據(jù)權(quán)利要求8所述的一種通用神經(jīng)網(wǎng)絡(luò)計算單元,其特征在于,輸出數(shù)據(jù)讀寫控制模塊負責(zé)實現(xiàn)可能存在的輸出數(shù)據(jù)的數(shù)據(jù)重排工作;部分和數(shù)據(jù)控制讀寫控制模塊和量化權(quán)重數(shù)據(jù)讀寫模塊負責(zé)實現(xiàn)部分和數(shù)據(jù)和量化權(quán)重數(shù)據(jù)的直接讀取工作。
10.根據(jù)權(quán)利要求9所述的一種通用神經(jīng)網(wǎng)絡(luò)計算單元,其特征在于,所述零級緩沖區(qū)接收指令并通過零級輸入數(shù)據(jù)緩沖區(qū)和零級權(quán)重數(shù)據(jù)緩沖區(qū)用于緩存數(shù)據(jù)重排后的輸入數(shù)據(jù)和權(quán)重數(shù)據(jù);對零級緩沖區(qū)進行讀寫控制,用于實現(xiàn)實時調(diào)控數(shù)據(jù)讀取和計算速度。