浮點數


Tensor

數據存儲

N:bach批量大小

C:channel特征圖通道數

H:特征圖的高

W:特征圖的寬

 

深度學習框架中卷積神經網絡特征圖用4D張量表示,但體現在硬件中是1D。

NCHW代表【WHCN】,NHWC代表【CWHN】

 

對於NCHW,存儲時是【WHCN】,從001開始沿着W方向知道003,再沿H方向挨個存004、005、006,直到019,存完第一張沿C方向按同樣方式存第二張,最后沿N方向重復上述操作。

對NHWC,存儲時按【CWHN】,從000沿C方向存020,040等,之后沿W方向存001、021等,再沿H方向,最后沿N。

RGB圖像

 

浮點乘法器

浮點數概念與運算規則

浮點數表示

 

l  FP32為單精度浮點數,32bit,1bit符號位,8bit表示指數部分,23bit表示尾數部分。

l  TF32為英偉達提出的代替FP32的單精度浮點數,8位指數和10位尾數。

l  FP16為半精度浮點數,5bit表示指數,10bit表示小數,

l  BF16是對FP32的截斷數據,8bit表示指數,7bit表示小數。

l  FP32和BF16整數表示范圍一致,小數部分不同,存在誤差。

l  FP32和FP16數據范圍不一致,FP16在大數據計算中可能溢出。

l  通常表示為N=MxR^E;其中M為尾數,R為基數,E為階碼,R一般取2。

以十進制12.5為例,符號位為0,轉化為二進制是1100.1,進一步寫成1.1001*2^3。

在將實際指數轉化為階碼時,要加上偏移值127,實際階碼E=實際指數+127。因為8bit既要表示正指數也要表示負指數,另外將0和255單拎出來。

       若E=11111111且M=0,可根據S不同表示+∞和-∞。

       若E=00000000且M=0,可根據S不同表示+0和-0.

       若E=00000000且M≠0,表示為NAN,不是一個數值。

 

 

 

           

 

 

e浮點數運算
乘除

兩個浮點數相乘,乘積的階碼為相乘兩數的階碼之和,乘積的尾數為相乘兩數的尾數之積。

乘除法相比於加減法簡單,不需要對階,只需要考慮規格化和攝入問題。

乘法步驟

l  檢測兩個尾數是否一個為0,若為0則乘積必為0.

l  階碼相加減

l  尾數相乘

l  結果規格化和舍入處理

 

參考鏈接:

https://blog.csdn.net/shuzfan/article/details/53814424?ops_request_misc=&request_id=&biz_id=102&utm_term=%E6%B5%AE%E7%82%B9%E6%95%B0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~sobaiduweb~default-0-53814424.nonecase&spm=1018.2226.3001.4450

https://zhuanlan.zhihu.com/p/92851098

https://zhuanlan.zhihu.com/p/355615128

https://www.cnblogs.com/qy-blogs/p/9201227.html

浮點數乘法器設計

設計要求

                   i.           輸入格式可配,支持int8、fp16、bf16,輸出格式根據輸入格式確定:int8->int16,fp16/bf16-> tf32;

                  ii.           輸入數據位寬為16bit,即可以輸入兩個int8數據或者一個fp16/bf16;

                 iii.           輸出數據位寬為32bit,tf32不足32bit高位補0;

                 iv.           浮點運算支持“最近偶數”舍入,不支持非規約數;

                  v.           搭建testbench環境,完成驗證,結果與dw lib庫比對;

設計點

  1. 按照輸入數據類型,提取符號位、階碼、尾數
  2. 符號位處理,直接異或
  3. 尾數相乘,16*16乘法器。假設A為1.M,B為1.N,則A*B為1+0.M+0.N+0.M*0.N。
  4. 階碼處理,分別減去127得到真實階碼,相加得到結果階碼再加127。此處考慮溢出處理。
  5. 規范化,左規右規。舍入處理,最近偶數。

待定:

1、 確認輸入數據屬於同一類型

2、 輸入數據表示方法是補碼還是移碼

 

 

浮點數加法器設計


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM