本申請涉及集成電路領域,特別是涉及一種浮點數(shù)的存內計算方法、存內計算架構和存內計算芯片。
背景技術:
1、存內計算已經成為克服馮·諾依曼體系結構固有問題的一種很有前途的解決方案?;陟o態(tài)隨機存儲器的存內計算方案通過抑制系統(tǒng)存儲和計算功能之間的數(shù)據(jù)傳輸,提高了進行乘累加的卷積操作能效。近些年來,先進人工智能芯片需要高精度的輸入精度、權重精度和輸出精度,以實現(xiàn)高推理精度、高能效。但是,現(xiàn)有基于整數(shù)的存內計算靜態(tài)隨機存儲器缺乏對浮點數(shù)計算的支持,并且在應用于復雜數(shù)據(jù)集或神經網(wǎng)絡模型時極易失去精度。這些整數(shù)存內計算存儲器可以進行浮點數(shù)的卷積操作,通過帶有額外浮點到整數(shù)的轉換器或者是通過片外遠離整數(shù)存內計算靜態(tài)隨機存儲器的數(shù)字電路來處理浮點數(shù)的輸入指數(shù),并結合片外軟件預校準來處理權重指數(shù),這會帶來額外的面積、功耗和延遲。
2、近些年,浮點數(shù)的存內計算已經引起了學者們的注視,重點在于對指數(shù)的處理,并且映射在尾數(shù)層面,為了讓尾數(shù)在統(tǒng)一量級進行卷積操作,大多利用數(shù)字邏輯實現(xiàn)找到指數(shù)加法操作后的最大值、減法電路以及最后對尾數(shù)的插0電路,但是這些繁瑣邏輯操作依舊會帶來額外的芯片面積和功耗。
3、針對目前浮點數(shù)的存內計算方法會帶來額外的芯片面積和功耗的問題,目前還沒有提出有效的解決方案。
技術實現(xiàn)思路
1、在本發(fā)明中提供了一種浮點數(shù)的存內計算方法、存內計算架構和存內計算芯片,以解決目前浮點數(shù)的存內計算方法會帶來額外的芯片面積和功耗的問題。
2、第一個方面,在本發(fā)明中提供了一種浮點數(shù)的存內計算方法,包括:
3、計算目標卷積神經網(wǎng)絡在不同卷積量級組合下對測試集的推理精度損失,所述目標卷積神經網(wǎng)絡用于通過多次卷積操作從圖像中提取特征信息;
4、在小于目標值的至少一個推理精度損失對應的卷積量級組合中確定一個卷積量級組合作為目標卷積量級組合,所述目標卷積量級組合包括各次卷積操作的基準量級;
5、對于所述目標卷積神經網(wǎng)絡的任意卷積操作,采用對應的基準量級實現(xiàn)所述卷積操作的浮點數(shù)計算。
6、第二個方面,在本發(fā)明中提供了一種存內計算架構,被配置為通過復用實現(xiàn)目標卷積神經網(wǎng)絡中多次卷積操作,包括:
7、指數(shù)處理模塊,用于實現(xiàn)輸入指數(shù)和權重指數(shù)的指數(shù)計算,并根據(jù)指數(shù)計算結果和基準量級信號生成預插0信號;
8、插0模塊,用于在所述預插0信號表示插0的數(shù)量大于輸入尾數(shù)的比特數(shù)時將所述輸入尾數(shù)置零,以及用于在所述預插0信號表示插0的數(shù)量小于所述輸入尾數(shù)的比特數(shù)時根據(jù)所述預插0信號表示插0的數(shù)量對所述輸入尾數(shù)進行插0操作,以使所述輸入尾數(shù)的量級均為所述卷積操作的基準量級;
9、尾數(shù)計算模塊,用于將插0操作后的各個所述輸入尾數(shù)進行尾數(shù)計算得到尾數(shù)計算結果。
10、與相關技術相比,本發(fā)明不在硬件電路層面確定基準量級并生成基準量級信號,而是預先在軟件網(wǎng)絡層面,通過測試得到適配于目標卷積神經網(wǎng)絡的基準量級。然后在運行目標卷積神經網(wǎng)絡時,通過外部fpga生成基準量級信號提供給全加器。不僅提高了浮點數(shù)的存內計算效率,同時降低了存儲器的芯片面積和功耗。
11、本申請的一個或多個實施例的細節(jié)在以下附圖和描述中提出,以使本申請的其他特征、目的和優(yōu)點更加簡明易懂。
1.一種浮點數(shù)的存內計算方法,其特征在于,包括:
2.根據(jù)權利要求1所述的浮點數(shù)的存內計算方法,其特征在于,所述浮點數(shù)包括指數(shù)和尾數(shù),所述指數(shù)計算包括指數(shù)加法計算和指數(shù)減法計算;
3.根據(jù)權利要求2所述的浮點數(shù)的存內計算方法,其特征在于,所述指數(shù)加法計算和所述指數(shù)減法計算通過復用同一指數(shù)處理模塊實現(xiàn);
4.根據(jù)權利要求3所述的浮點數(shù)的存內計算方法,其特征在于,所述指數(shù)處理模塊包括多個級聯(lián)的單位指數(shù)處理電路,所述單位指數(shù)處理電路包括1位全加器,所述基準量級信號和所述權重指數(shù)通過2選1選擇器接入所述1位全加器的其中一個輸入端。
5.根據(jù)權利要求2所述的浮點數(shù)的存內計算方法,其特征在于,根據(jù)所述預插0信號對所述輸入尾數(shù)進行插0操作,包括:
6.一種存內計算架構,被配置為通過復用實現(xiàn)目標卷積神經網(wǎng)絡中多次卷積操作,其特征在于,包括:
7.根據(jù)權利要求6所述的存內計算架構,其特征在于,所述插0模塊包括插0判斷子模塊和插0移位子模塊;
8.根據(jù)權利要求6所述的存內計算架構,其特征在于,所述指數(shù)處理模塊包括多個級聯(lián)的單位指數(shù)處理電路,所述單位指數(shù)處理電路包括1位全加器,所述基準量級信號和所述權重指數(shù)通過2選1選擇器接入所述1位全加器的其中一個輸入端。
9.一種存內計算芯片,其特征在于,集成有權利要求6-8中任一項所述的存內計算架構。
10.一種靜態(tài)隨機存儲器,其特征在于,采用權利要求9所述的存內計算芯片。