[發(fā)明專利]基于對(duì)數(shù)運(yùn)算系統(tǒng)的小型浮點(diǎn)運(yùn)算單元及其在FPGA中的應(yīng)用在審
| 申請(qǐng)?zhí)枺?/td> | 202211614257.7 | 申請(qǐng)日: | 2022-12-12 |
| 公開(公告)號(hào): | CN115840555A | 公開(公告)日: | 2023-03-24 |
| 發(fā)明(設(shè)計(jì))人: | 熊波濤;何心同;常玉春;范升 | 申請(qǐng)(專利權(quán))人: | 大連理工大學(xué) |
| 主分類號(hào): | G06F7/487 | 分類號(hào): | G06F7/487;G06F7/556 |
| 代理公司: | 遼寧鴻文知識(shí)產(chǎn)權(quán)代理有限公司 21102 | 代理人: | 王海波 |
| 地址: | 116024 遼*** | 國省代碼: | 遼寧;21 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 對(duì)數(shù) 運(yùn)算 系統(tǒng) 小型 浮點(diǎn) 單元 及其 fpga 中的 應(yīng)用 | ||
本發(fā)明提供了基于對(duì)數(shù)運(yùn)算系統(tǒng)的小型浮點(diǎn)運(yùn)算單元及其在FPGA中的應(yīng)用,可應(yīng)用于機(jī)器學(xué)習(xí)等容錯(cuò)性計(jì)算,解決現(xiàn)有技術(shù)不能支持更高精度計(jì)算的問題,提供了更適合機(jī)器學(xué)習(xí)的架構(gòu)。所提出的乘法運(yùn)算單元通過對(duì)數(shù)轉(zhuǎn)換器將輸入的浮點(diǎn)數(shù)轉(zhuǎn)換為對(duì)數(shù)域內(nèi)的浮點(diǎn)數(shù),通過尾數(shù)加法器計(jì)算對(duì)數(shù)域內(nèi)的尾數(shù)結(jié)果以及指數(shù)進(jìn)位信號(hào),通過指數(shù)加法器得到指數(shù),最后通過反對(duì)數(shù)轉(zhuǎn)換器將結(jié)果轉(zhuǎn)換為浮點(diǎn)數(shù)格式。相較于Xilinx提出的3位尾數(shù)小型浮點(diǎn)數(shù)乘法器,本發(fā)明支持4位、5位尾數(shù)的乘法而只需額外1~3個(gè)6輸入查找表;所提出的流水線硬件結(jié)構(gòu)能實(shí)現(xiàn)與其相同的吞吐量。此外,本發(fā)明提出的運(yùn)算單元結(jié)構(gòu)還可以實(shí)現(xiàn)除法和冪函數(shù)運(yùn)算。
技術(shù)領(lǐng)域
本發(fā)明屬于FPGA設(shè)計(jì)領(lǐng)域,尤其涉及一種基于對(duì)數(shù)運(yùn)算系統(tǒng)的小型浮點(diǎn)運(yùn)算單元設(shè)計(jì)及其在機(jī)器學(xué)習(xí)等容錯(cuò)性計(jì)算中的應(yīng)用。
背景技術(shù)
隨著多媒體技術(shù)、機(jī)器學(xué)習(xí)等技術(shù)的不斷的發(fā)展,越來越多的應(yīng)用領(lǐng)域具有較強(qiáng)的容錯(cuò)性,即適當(dāng)?shù)挠?jì)算誤差并不會(huì)影響最終的應(yīng)用效果。在此背景下近似計(jì)算技術(shù)獲得了學(xué)術(shù)界與工業(yè)界的廣泛關(guān)注。近似計(jì)算不僅可以在模擬電路中實(shí)現(xiàn)(如:存內(nèi)計(jì)算技術(shù)),也可以在數(shù)字電路中實(shí)現(xiàn)(如:近似邏輯綜合算法,近似運(yùn)算電路設(shè)計(jì))。在近似運(yùn)算電路設(shè)計(jì)領(lǐng)域,Xilinx在2021年提出了基于6輸入查找表的7比特小型浮點(diǎn)乘法器,成功應(yīng)用于ResNet-50神經(jīng)網(wǎng)絡(luò)。Xilinx提出的小型浮點(diǎn)乘法器具有以下特征:
(1)輸入為兩個(gè)7比特浮點(diǎn)數(shù)(含指數(shù)位3比特(E)、尾數(shù)位3比特(F)、指數(shù)位偏置為4;當(dāng)指數(shù)位為0時(shí),該浮點(diǎn)數(shù)為0;當(dāng)指數(shù)位為7時(shí),該浮點(diǎn)數(shù)依然按照(-1)S×2E-4×(1+F)計(jì)算;非零最小值和最大值分別為0.125和15;該浮點(diǎn)數(shù)格式記為SFP3,3)。
(2)輸出為一個(gè)9比特浮點(diǎn)數(shù)(含指數(shù)位4比特、小數(shù)位4比特、指數(shù)位偏置為8;該浮點(diǎn)數(shù)格式記為SFP4,4)。
(3)該小型浮點(diǎn)乘法器的核心為將乘積的結(jié)果存在6輸入查找表中。
該方案不但避免了神經(jīng)網(wǎng)絡(luò)的量化訓(xùn)練,而且相比傳統(tǒng)的基于INT8的神經(jīng)網(wǎng)絡(luò)設(shè)計(jì),將VU13P開發(fā)板上算力從25TOPS提升至40TOPS。在FPGA上實(shí)現(xiàn)該乘法器只需要10個(gè)6輸入查找表。
然而當(dāng)輸入數(shù)字的尾數(shù)大于3位,所消耗的硬件資源將顯著增加,例如,乘法器改用SFP3,4的格式輸入,SFP4,5的格式輸出,ResNet-50的精度將從98.8%提高到100.4%(32位浮點(diǎn)數(shù)乘法的精度為100%),但需要18個(gè)6輸入查找表實(shí)現(xiàn)。因此,此方案在實(shí)現(xiàn)更高的計(jì)算精度時(shí),將不適合硬件設(shè)計(jì)。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提出了一種基于對(duì)數(shù)運(yùn)算系統(tǒng)的小型浮點(diǎn)運(yùn)算單元,旨在解決現(xiàn)有技術(shù)中,輸入乘數(shù)的尾數(shù)多于3位時(shí),硬件資源顯著增加的問題。本發(fā)明提出的運(yùn)算單元還可以實(shí)現(xiàn)除法和冪函數(shù)的運(yùn)算。
為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種基于查找表的小型浮點(diǎn)乘法運(yùn)算單元,技術(shù)方案如下:
基于對(duì)數(shù)運(yùn)算系統(tǒng)的小型浮點(diǎn)運(yùn)算單元,包括對(duì)數(shù)轉(zhuǎn)換器、尾數(shù)運(yùn)算器、反對(duì)數(shù)轉(zhuǎn)換器和指數(shù)運(yùn)算器。
進(jìn)一步地,當(dāng)小型浮點(diǎn)運(yùn)算單元為乘法運(yùn)算單元時(shí),乘法運(yùn)算單元包括對(duì)數(shù)轉(zhuǎn)換器、尾數(shù)加法器、反對(duì)數(shù)轉(zhuǎn)換器和指數(shù)加法器。
所述的對(duì)數(shù)轉(zhuǎn)換器用于將SFP格式數(shù)據(jù)的3~5位尾數(shù)FL經(jīng)過對(duì)數(shù)轉(zhuǎn)換,得到SLFP格式下的尾數(shù)KL:KL=Log2(1+FL)。
所述的尾數(shù)加法器通過加法器實(shí)現(xiàn),是將SLFP格式下的尾數(shù)KL與SLFP格式下的3~4位尾數(shù)KW相加:KW+KL={Carry,K};其中,Carry是指數(shù)進(jìn)位,K是乘積結(jié)果在SLFP格式下的尾數(shù)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于大連理工大學(xué),未經(jīng)大連理工大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202211614257.7/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F7-00 通過待處理的數(shù)據(jù)的指令或內(nèi)容進(jìn)行運(yùn)算的數(shù)據(jù)處理的方法或裝置
G06F7-02 .比較數(shù)字值的
G06F7-06 .將單個(gè)記錄載體上的數(shù)據(jù)進(jìn)行排序、選擇、合并或比較的裝置
G06F7-22 .用于排序或合并在連續(xù)記錄載體
G06F7-38 .只利用數(shù)制表示,例如利用二進(jìn)制、三進(jìn)制、十進(jìn)制表示來完成計(jì)算的方法或裝置
G06F7-58 .隨機(jī)數(shù)或偽隨機(jī)數(shù)發(fā)生器





