System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及存算一體陣列,特別是指一種基于存算一體陣列的adc增益調整方法及電路。
技術介紹
1、如圖1所示,存算一體陣列是一種基本的存算一體電路架構,利用基爾霍夫定律完成高效的矩陣乘加運算。
2、相關技術中,通常在使用存算一體陣列進行神經網絡計算時,需要事先將與存算一體陣列連接的adc(analog-to-digital?converter,模/數轉換器)的增益調整到一個固定值再進行推理,這就導致了adc無法自動適配不同的輸入情況,從而無法保證計算結果擁有最低的舍入誤差。
技術實現思路
1、本專利技術要解決的技術問題是提供一種基于存算一體陣列的adc增益調整方法及電路,能夠實現adc實時動態調整自身增益以保證計算結果的準確性。
2、為解決上述技術問題,本專利技術的實施例提供技術方案如下:
3、一方面,提供一種基于存算一體陣列的模數轉換器adc增益調整方法,包括:
4、第一步驟,利用存算一體單元對神經網絡模型進行計算,輸出n個模擬量,利用adc對所述n個模擬量進行采樣得到n個數字量,計算第一比例p,所述第一比例p=x/n,其中,所述n個數字量中的x個數字量處于所述adc的最大量化值;
5、第二步驟,判斷是否滿足第一條件,所述第一條件包括以下至少一項:p位于預設取值范圍內、執行所述第一步驟的次數達到預設次數,如果滿足,轉向第三步驟;如果不滿足,轉向第四步驟;
6、第三步驟,輸出所述adc的當前增益;
8、一些實施例中,所述第一步驟包括:
9、第一子步驟,開啟所述存算一體單元進行乘加計算,輸出n個模擬量,利用所述adc對所述n個模擬量進行采樣,得到n個數字量;記錄所述n以及所述adc對所述n個模擬量進行采樣后采樣數據分布的adc量化檔位的數目x;
10、第二步驟,判斷是否完成對一層神經網絡模型中所有向量的計算,如果是,轉向第三子步驟,如果不是,轉向第一子步驟;
11、第三子步驟,將所有第一子步驟得到的n相加得到n,將所有第一子步驟得到的x相加得到x。
12、一些實施例中,所述預設取值范圍為大于或等于第一值小于或等于第二值,對所述adc的增益進行調整包括:
13、如果所述p小于所述第一值,增大所述adc的增益;
14、如果所述p大于所述第二值,減小所述adc的增益。
15、一些實施例中,如果所述p小于所述第一值,增大所述adc的增益包括:
16、判斷所述p在之前第一步驟的計算中是否均小于所述第一值;
17、如果是,將所述adc的增益調整為當前增益的2倍;如果不是,將所述adc的增益調整為當前增益+s/2,s為調整步長;
18、將當前的調整步長更新為s/2。
19、一些實施例中,如果所述p大于所述第二值,減小所述adc的增益包括:
20、判斷所述p在之前第一步驟的計算中是否均大于所述第二值;
21、如果是,將所述adc的增益調整為當前增益的2分之1;如果不是,將所述adc的增益調整為當前增益-s/2,s為當前的調整步長;
22、將當前的調整步長更新為s/2。
23、本專利技術實施例還提供了一種基于存算一體陣列的模數轉換器adc增益調整電路,包括:
24、存算一體單元,用于對神經網絡模型進行計算,輸出n個模擬量;
25、adc,用于對所述n個模擬量進行采樣得到n個數字量;
26、統計單元,用于計算第一比例p,所述第一比例p=x/n,其中,所述n個數字量中的x個數字量處于所述adc的最大量化值;
27、調整單元,用于判斷是否滿足第一條件,所述第一條件包括以下至少一項:p位于預設取值范圍內、所述存算一體單元的計算次數達到預設次數,如果滿足,輸出所述adc的當前增益;如果不滿足,對所述adc的增益進行調整。
28、一些實施例中,所述電路還包括:
29、第一計數器,用于在所述存算一體單元進行乘加計算,輸出n個模擬量,利用所述adc對所述n個模擬量進行采樣,得到n個數字量之后,記錄所述n;
30、第二計數器,用于在所述存算一體單元進行乘加計算,輸出n個模擬量,利用所述adc對所述n個模擬量進行采樣,得到n個數字量之后,記錄所述adc對所述n個模擬量進行采樣后采樣數據分布的adc量化檔位的數目x;
31、第一累加器,用于將得到的所有n相加得到n;
32、第二累加器,用于將得到的所有x相加得到x。
33、一些實施例中,所述預設取值范圍為大于或等于第一值小于或等于第二值,
34、所述調整單元具體用于如果所述p小于所述第一值,增大所述adc的增益;如果所述p大于所述第二值,減小所述adc的增益。
35、一些實施例中,如果所述p小于所述第一值,所述調整單元包括:
36、調整子電路,用于判斷所述p在之前第一步驟的計算中是否均小于所述第一值;如果是,將所述adc的增益調整為當前增益的2倍;如果不是,將所述adc的增益調整為當前增益+s/2,s為調整步長;
37、更新子電路,用于將當前的調整步長更新為s/2。
38、一些實施例中,如果所述p大于所述第二值,所述調整單元包括:
39、調整子電路,用于判斷所述p在之前第一步驟的計算中是否均大于所述第二值;如果是,將所述adc的增益調整為當前增益的2分之1;如果不是,將所述adc的增益調整為當前增益-s/2,s為當前的調整步長;
40、更新子電路,用于將當前的調整步長更新為s/2。
41、本專利技術實施例還提供了一種基于存算一體陣列的模數轉換器adc增益調整電路,包括存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的計算機程序;所述處理器執行所述程序時實現如上所述的基于存算一體陣列的adc增益調整方法。
42、本專利技術實施例還提供了一種計算機可讀存儲介質,其上存儲有計算機程序,該程序被處理器執行時實現如上所述的基于存算一體陣列的adc增益調整方法中的步驟。
43、本專利技術的實施例具有以下有益效果:
44、上述方案中,在利用存算一體單元對神經網絡模型進行計算時,能夠對adc的增益進行調整,以保證計算結果的準確性。
本文檔來自技高網...【技術保護點】
1.一種基于存算一體陣列的模數轉換器ADC增益調整方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述第一步驟包括:
3.根據權利要求1所述的方法,其特征在于,所述預設取值范圍為大于或等于第一值小于或等于第二值,對所述ADC的增益進行調整包括:
4.根據權利要求3所述的方法,其特征在于,如果所述P小于所述第一值,增大所述ADC的增益包括:
5.根據權利要求3所述的方法,其特征在于,如果所述P大于所述第二值,減小所述ADC的增益包括:
6.一種基于存算一體陣列的模數轉換器ADC增益調整電路,其特征在于,包括:
7.根據權利要求6所述的電路,其特征在于,所述電路還包括:
8.根據權利要求6所述的電路,其特征在于,所述預設取值范圍為大于或等于第一值小于或等于第二值,
9.根據權利要求8所述的電路,其特征在于,如果所述P小于所述第一值,所述調整單元包括:
10.根據權利要求8所述的電路,其特征在于,如果所述P大于所述第二值,所述調整單元包括:
11.
12.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,該程序被處理器執行時實現如權利要求1-5中任一項所述的基于存算一體陣列的ADC增益調整方法中的步驟。
...【技術特征摘要】
1.一種基于存算一體陣列的模數轉換器adc增益調整方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述第一步驟包括:
3.根據權利要求1所述的方法,其特征在于,所述預設取值范圍為大于或等于第一值小于或等于第二值,對所述adc的增益進行調整包括:
4.根據權利要求3所述的方法,其特征在于,如果所述p小于所述第一值,增大所述adc的增益包括:
5.根據權利要求3所述的方法,其特征在于,如果所述p大于所述第二值,減小所述adc的增益包括:
6.一種基于存算一體陣列的模數轉換器adc增益調整電路,其特征在于,包括:
7.根據權利要求6所述的電路,其特征在于,所述電路還包括:
8.根據權利要求6所述的電...
【專利技術屬性】
技術研發人員:高濱,王澤,郝鎮齊,李楊,李小濤,
申請(專利權)人:清華大學,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。