欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于三維循環(huán)展開(kāi)的通用神經(jīng)網(wǎng)絡(luò)加速方法

文檔序號(hào):40559612發(fā)布日期:2025-01-03 11:19閱讀:12來(lái)源:國(guó)知局
一種基于三維循環(huán)展開(kāi)的通用神經(jīng)網(wǎng)絡(luò)加速方法

本發(fā)明屬于神經(jīng)網(wǎng)絡(luò)加速及處理單元設(shè)計(jì),提出了一種基于三維循環(huán)展開(kāi)的通用神經(jīng)網(wǎng)絡(luò)加速方法。


背景技術(shù):

1、深度卷積神經(jīng)網(wǎng)絡(luò)在計(jì)算機(jī)視覺(jué)、語(yǔ)音識(shí)別等眾多領(lǐng)域的優(yōu)異表現(xiàn),使其成為了當(dāng)今機(jī)器學(xué)習(xí)的主流方向。然而,隨著深度網(wǎng)絡(luò)的復(fù)雜性和計(jì)算需求的增加,傳統(tǒng)的中央處理器(cpu)和圖像處理器(gpu)在處理這些計(jì)算密集型任務(wù)時(shí)面臨效率和性能瓶頸。因此,異構(gòu)計(jì)算平臺(tái)如fpga、asic被廣泛用于深度網(wǎng)絡(luò)的硬件加速器設(shè)計(jì)。

2、卷積作為神經(jīng)網(wǎng)絡(luò)中的主要操作,是顯著影響加速器的效率和性能的關(guān)鍵因素。而硬件平臺(tái)上有限的計(jì)算資源和存儲(chǔ)容量使得卷積計(jì)算的加速成為一個(gè)復(fù)雜的多維優(yōu)化問(wèn)題。此外,卷積操作涉及的大量數(shù)據(jù)移動(dòng)和內(nèi)存訪問(wèn)相關(guān)的能耗代價(jià)甚至超過(guò)了計(jì)算的能耗。基于上述問(wèn)題,實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)的高能效硬件加速需要同時(shí)最大化數(shù)據(jù)重用和資源利用率,最小化數(shù)據(jù)通信,這對(duì)卷積的優(yōu)化加速提出了很高的要求。

3、針對(duì)上述問(wèn)題,本技術(shù)致力于提出一種基于三維循環(huán)展開(kāi)的通用神經(jīng)網(wǎng)絡(luò)加速方法。


技術(shù)實(shí)現(xiàn)思路

1、本發(fā)明的目的在于針對(duì)目前神經(jīng)網(wǎng)絡(luò)加速器中卷積計(jì)算單元存在計(jì)算效率低、內(nèi)存訪問(wèn)能耗大的問(wèn)題,提出了一種三維循環(huán)展開(kāi)的通用神經(jīng)網(wǎng)絡(luò)加速方法。

2、為了實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案。

3、作為本發(fā)明的第一方面,提出了一種與外部存儲(chǔ)器及外部控制器相連的通用神經(jīng)網(wǎng)絡(luò)計(jì)算單元,所述通用神經(jīng)網(wǎng)絡(luò)計(jì)算單元,包括中控模塊、核心計(jì)算單元、一級(jí)緩沖區(qū)以及一級(jí)緩沖區(qū)讀寫控制器;

4、所述外部控制器在中控模塊配置完各緩沖區(qū)及控制模塊后,發(fā)送開(kāi)始信號(hào);

5、所述中控模塊,通過(guò)指令的發(fā)送、接收和譯碼對(duì)輸入數(shù)據(jù)一級(jí)讀寫、權(quán)重?cái)?shù)據(jù)一級(jí)讀寫、輸出數(shù)據(jù)讀寫、部分和數(shù)據(jù)讀寫和量化權(quán)重?cái)?shù)據(jù)讀寫進(jìn)行控制以及對(duì)輸入數(shù)據(jù)零級(jí)讀寫和權(quán)重?cái)?shù)據(jù)零級(jí)讀寫進(jìn)行控制實(shí)現(xiàn)各緩沖區(qū)及控制模塊的配置;并在開(kāi)始信號(hào)到來(lái)時(shí)使能各控制模塊;

6、所述一級(jí)緩沖區(qū),包括量化權(quán)重?cái)?shù)據(jù)緩沖區(qū)、部分和數(shù)據(jù)緩沖區(qū)、輸入數(shù)據(jù)一級(jí)緩沖區(qū)、權(quán)重?cái)?shù)據(jù)一級(jí)緩沖區(qū)以及輸出數(shù)據(jù)緩沖區(qū);所述通用神經(jīng)網(wǎng)絡(luò)計(jì)算單元對(duì)神經(jīng)網(wǎng)絡(luò)計(jì)算前所需要的輸入特征圖數(shù)據(jù)、權(quán)重?cái)?shù)據(jù)和量化權(quán)重?cái)?shù)據(jù)、神經(jīng)網(wǎng)絡(luò)計(jì)算過(guò)程中產(chǎn)生的部分和數(shù)據(jù)及神經(jīng)網(wǎng)絡(luò)計(jì)算后所產(chǎn)生的輸出數(shù)據(jù)進(jìn)行一級(jí)緩沖并通過(guò)指令實(shí)時(shí)調(diào)整讀寫控制邏輯;

7、所述通用神經(jīng)網(wǎng)絡(luò)計(jì)算單元,還包括零級(jí)緩沖區(qū)及零級(jí)緩沖區(qū)讀寫控制器;所述零級(jí)緩沖區(qū),包括輸入數(shù)據(jù)零級(jí)緩沖區(qū)和權(quán)重?cái)?shù)據(jù)零級(jí)緩沖區(qū);所述零級(jí)緩沖區(qū)讀寫控制器,包括輸入數(shù)據(jù)零級(jí)讀寫控制模塊以及權(quán)重?cái)?shù)據(jù)零級(jí)讀寫控制模塊;所述零級(jí)緩沖區(qū)分別與一級(jí)緩沖區(qū)讀寫控制器及零級(jí)緩沖區(qū)讀寫控制器相連;

8、所述一級(jí)緩沖區(qū)讀寫控制器,包括量化權(quán)重?cái)?shù)據(jù)讀寫控制模塊、部分和數(shù)據(jù)讀寫控制模塊、輸入數(shù)據(jù)一級(jí)讀寫控制模塊、權(quán)重?cái)?shù)據(jù)一級(jí)讀寫控制模塊以及輸出數(shù)據(jù)讀寫控制模塊;所述輸入數(shù)據(jù)一級(jí)讀寫控制模塊、權(quán)重?cái)?shù)據(jù)一級(jí)讀寫控制模塊,分別檢測(cè)輸入數(shù)據(jù)和權(quán)重?cái)?shù)據(jù)一級(jí)緩沖區(qū)的狀態(tài)和零級(jí)緩沖區(qū)的狀態(tài),在所述緩沖區(qū)狀態(tài)不滿足讀取和寫入要求時(shí)進(jìn)入阻塞狀態(tài),阻塞狀態(tài)下等待至滿足讀取和寫入要求后再進(jìn)行數(shù)據(jù)讀取和寫入操作;

9、輸入數(shù)據(jù)零級(jí)讀寫控制模塊和權(quán)重?cái)?shù)據(jù)零級(jí)讀寫控制模塊從零級(jí)緩沖區(qū)中讀取數(shù)據(jù)并寫入核心計(jì)算單元進(jìn)行卷積計(jì)算,卷積所得的輸出數(shù)據(jù)送入輸出數(shù)據(jù)緩沖區(qū);

10、輸出數(shù)據(jù)緩沖區(qū)接收卷積所得的輸出數(shù)據(jù)后,核心計(jì)算單元發(fā)送計(jì)算結(jié)束信號(hào)給中控模塊;中控模塊接收到計(jì)算結(jié)束信號(hào)后,向各控制模塊和核心計(jì)算單元發(fā)送清零指令,完成本次計(jì)算。

11、作為本發(fā)明的第二方面,提出了一種三維循環(huán)展開(kāi)的通用神經(jīng)網(wǎng)絡(luò)加速方法,包括如下步驟:

12、s1、中控模塊通過(guò)指令的發(fā)送、接收和譯碼對(duì)輸入數(shù)據(jù)一級(jí)讀寫、權(quán)重?cái)?shù)據(jù)一級(jí)讀寫、輸出數(shù)據(jù)讀寫、部分和數(shù)據(jù)讀寫和量化權(quán)重?cái)?shù)據(jù)讀寫進(jìn)行控制以及對(duì)輸入數(shù)據(jù)零級(jí)讀寫和權(quán)重?cái)?shù)據(jù)零級(jí)讀寫進(jìn)行控制實(shí)現(xiàn)各緩沖區(qū)及控制模塊的配置,配置完成后,外部控制器發(fā)送開(kāi)始信號(hào);

13、s2、中控模塊在開(kāi)始信號(hào)到來(lái)時(shí)使能各控制模塊;

14、s3、輸入數(shù)據(jù)一級(jí)讀寫控制模塊和權(quán)重?cái)?shù)據(jù)一級(jí)讀寫控制模塊分別檢測(cè)輸入數(shù)據(jù)和權(quán)重?cái)?shù)據(jù)一級(jí)緩沖區(qū)的狀態(tài)和零級(jí)緩沖區(qū)的狀態(tài),在所述緩沖區(qū)狀態(tài)不滿足讀取和寫入要求時(shí)進(jìn)入阻塞狀態(tài),阻塞狀態(tài)下等待至滿足讀取和寫入要求后再進(jìn)行數(shù)據(jù)讀取和寫入操作;

15、s4、輸入數(shù)據(jù)零級(jí)讀寫控制模塊和權(quán)重?cái)?shù)據(jù)零級(jí)讀寫控制模塊從零級(jí)緩沖區(qū)中讀取數(shù)據(jù)并寫入核心計(jì)算單元進(jìn)行卷積計(jì)算,卷積所得的輸出數(shù)據(jù)送入輸出數(shù)據(jù)緩沖區(qū);

16、s5、當(dāng)卷積所得的輸出數(shù)據(jù)均被送入輸出數(shù)據(jù)緩沖區(qū)后,核心計(jì)算單元發(fā)送計(jì)算結(jié)束信號(hào);

17、s6、中控模塊接收到計(jì)算結(jié)束信號(hào)后,向各控制模塊和核心計(jì)算單元發(fā)送清零指令,完成本次卷積計(jì)算。

18、s1中各緩沖區(qū)及控制模塊的配置,具體為:中控模塊向各一級(jí)緩沖區(qū)發(fā)送指令,告知本次運(yùn)算的算子類型與各數(shù)據(jù)在緩沖區(qū)中的存儲(chǔ)位置、形式和大小以及外層計(jì)算順序;向各零級(jí)緩沖區(qū)發(fā)送指令,告知其本次計(jì)算的內(nèi)層計(jì)算順序;向零級(jí)緩沖區(qū)和核心計(jì)算單元發(fā)送指令,配置與計(jì)算相關(guān)的寄存器。

19、s2中控模塊在開(kāi)始信號(hào)到來(lái)時(shí)使能各控制模塊,具體為:中控模塊接收到開(kāi)始信號(hào)后對(duì)該開(kāi)始信號(hào)進(jìn)行上升沿采樣,并在開(kāi)始信號(hào)上升沿到來(lái)時(shí)拉高各控制模塊的使能信號(hào)。

20、s3所述緩沖區(qū)狀態(tài)不滿足讀取和寫入要求,具體為:當(dāng)緩沖區(qū)狀態(tài)為空時(shí),表明所述緩沖區(qū)狀態(tài)不滿足讀取要求;當(dāng)緩沖區(qū)狀態(tài)為滿時(shí),表明所述緩沖區(qū)狀態(tài)不滿足寫入要求。

21、s3阻塞狀態(tài)下等待至滿足讀取和寫入要求后再進(jìn)行數(shù)據(jù)讀取和寫入操作,具體為:阻塞狀態(tài)下,當(dāng)緩沖區(qū)狀態(tài)為空時(shí),則等待至緩沖區(qū)狀態(tài)不為空,再進(jìn)行數(shù)據(jù)讀取,具體為:將數(shù)據(jù)從一級(jí)緩沖區(qū)中讀出并根據(jù)指令信息進(jìn)行數(shù)據(jù)重排和部分補(bǔ)零操作后,將數(shù)據(jù)送入零級(jí)緩沖區(qū);當(dāng)緩沖區(qū)狀態(tài)為滿時(shí),則等待至緩沖區(qū)狀態(tài)不為滿時(shí),再進(jìn)行數(shù)據(jù)寫入,具體為:將數(shù)據(jù)重排和部分補(bǔ)零操作后的數(shù)據(jù)寫入零級(jí)緩沖區(qū)。

22、s4所述卷積計(jì)算,具體依托核心計(jì)算單元不斷產(chǎn)生預(yù)讀取使能信號(hào)以實(shí)現(xiàn)部分和數(shù)據(jù)、量化權(quán)重?cái)?shù)據(jù)和輸出數(shù)據(jù)的預(yù)讀取操作完成。

23、s4所述從零級(jí)緩沖區(qū)中讀取數(shù)據(jù)并寫入核心計(jì)算單元,具體為:輸入數(shù)據(jù)零級(jí)讀寫控制模塊和權(quán)重?cái)?shù)據(jù)零級(jí)讀寫控制模塊分別檢測(cè)輸入數(shù)據(jù)和權(quán)重?cái)?shù)據(jù)對(duì)應(yīng)的零級(jí)緩沖區(qū)的狀態(tài)和核心計(jì)算單元的狀態(tài),若不滿足對(duì)應(yīng)的讀取和寫入要求,則進(jìn)入阻塞狀態(tài),等待至滿足要求后再進(jìn)行數(shù)據(jù)讀取和寫入操作;若滿足對(duì)應(yīng)的讀取和寫入要求,將數(shù)據(jù)從零級(jí)緩沖區(qū)中讀出,并根據(jù)指令信息完成數(shù)據(jù)的剩余補(bǔ)零操作后,將輸入數(shù)據(jù)和權(quán)重?cái)?shù)據(jù)送入核心計(jì)算單元。

24、s4所述卷積計(jì)算依托于包括廣播控制模塊、乘法器陣列、加法樹(shù)陣列、累加器陣列及量化陣列的核心計(jì)算單元實(shí)現(xiàn),具體計(jì)算過(guò)程包括如下子步驟:

25、s41、核心計(jì)算單元接收輸入數(shù)據(jù)和權(quán)重?cái)?shù)據(jù),根據(jù)指令信息,完成數(shù)據(jù)的廣播、乘法和規(guī)約操作;

26、s42、核心計(jì)算單元中乘加器陣列計(jì)算開(kāi)始并產(chǎn)生部分和數(shù)據(jù)讀寫的使能信號(hào);

27、s43、部分和數(shù)據(jù)讀寫控制模塊接收到部分和數(shù)據(jù)讀寫的使能信號(hào)后,讀取計(jì)算所需的一級(jí)緩沖區(qū)中對(duì)應(yīng)的部分和數(shù)據(jù),再將部分和數(shù)據(jù)送入核心計(jì)算單元;

28、s44、核心計(jì)算單元接收到部分和數(shù)據(jù)后,完成經(jīng)過(guò)規(guī)約后的數(shù)據(jù)和部分和數(shù)據(jù)間的累加操作;

29、s45、核心計(jì)算單元中的累加器陣列計(jì)算開(kāi)始并產(chǎn)生量化權(quán)重?cái)?shù)據(jù)讀寫的使能信號(hào);

30、s46、量化權(quán)重?cái)?shù)據(jù)讀寫控制模塊接收到量化權(quán)重?cái)?shù)據(jù)讀寫的使能信號(hào)后,讀取計(jì)算所需的一級(jí)緩沖區(qū)中對(duì)應(yīng)的量化權(quán)重?cái)?shù)據(jù),再將量化權(quán)重?cái)?shù)據(jù)送入核心計(jì)算單元;

31、s47、核心計(jì)算單元接收到量化權(quán)重?cái)?shù)據(jù)后,完成量化操作;

32、s48、核心計(jì)算單元中量化陣列計(jì)算開(kāi)始并產(chǎn)生輸出數(shù)據(jù)讀寫的使能信號(hào);

33、s49、輸出數(shù)據(jù)讀寫控制模塊接收到輸出數(shù)據(jù)讀寫的使能信號(hào)后,將計(jì)算所得的輸出數(shù)據(jù)送入輸出緩沖區(qū)。

34、有益效果

35、本發(fā)明提出了一種基于三維循環(huán)展開(kāi)的通用神經(jīng)網(wǎng)絡(luò)加速方法,相對(duì)于現(xiàn)有神經(jīng)網(wǎng)絡(luò)加速方法,具有以下有益效果:

36、1.所述方法提出了在輸入通道、輸出通道和輸出特征圖三個(gè)維度展開(kāi)做并行計(jì)算,與常規(guī)的循環(huán)展開(kāi)方法相比,具有更高的計(jì)算性能和數(shù)據(jù)重用率,減少了內(nèi)存訪問(wèn)帶來(lái)的功耗;

37、2.所述方法提出了一種基于多重循環(huán)展開(kāi)的地址信號(hào)產(chǎn)生機(jī)制,通過(guò)對(duì)級(jí)聯(lián)計(jì)數(shù)器進(jìn)行實(shí)時(shí)配置,實(shí)現(xiàn)了一個(gè)模塊可以同時(shí)適配各種基于循環(huán)展開(kāi)的地址信號(hào)產(chǎn)生方式,大幅度提高了神經(jīng)網(wǎng)絡(luò)加速器的靈活性和可配置性;

38、3.所述方法提出了一種面向神經(jīng)網(wǎng)絡(luò)的高效補(bǔ)零和數(shù)據(jù)重排機(jī)制,借助多級(jí)緩沖區(qū),實(shí)現(xiàn)了對(duì)輸入特征圖的分階段補(bǔ)零,實(shí)現(xiàn)了部分實(shí)時(shí)數(shù)據(jù)重排和補(bǔ)零,簡(jiǎn)化了補(bǔ)零和數(shù)據(jù)重排邏輯的同時(shí),降低了外部帶寬需求,提高了片上緩沖區(qū)的數(shù)據(jù)利用率。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
泾川县| 平阴县| 三河市| 抚松县| 卓资县| 塘沽区| 克什克腾旗| 柞水县| 同仁县| 江西省| 皋兰县| 马公市| 乌拉特中旗| 视频| 新营市| 保德县| 淳化县| 巴彦淖尔市| 墨脱县| 江源县| 漳浦县| 福建省| 兴海县| 保靖县| 常宁市| 措勤县| 平远县| 龙江县| 嘉义市| 上犹县| 黄大仙区| 甘泉县| 衡水市| 惠安县| 德化县| 忻城县| 阳东县| 新绛县| 北宁市| 清新县| 彩票|